Articles of 毕加索

使用Picasso的自定义下载器

我必须从URL下载图像,该URL需要一些标题(用户名,密码)以及请求。 所以我正在使用这里给出的代码。 但调用此函数会产生错误 java.lang.NoClassDefFoundError: com.squareup.okhttp.OkHttpClient at com.squareup.picasso.OkHttpDownloader.(OkHttpDownloader.java:72) 我正在使用Picasso 2.3.3和okhttp-urlconnection-2.0.0-RC2库这篇文章也提出了这个问题,但是改为2.3.2不起作用。

毕加索图像缓存

我想用Picasso图像缓存下载以下图像下载代码。 DownloadImage downloadImage = new DownloadImage(); downloadImage.execute(advert.getImgUrl()); private class DownloadImage extends AsyncTask { @Override protected Bitmap doInBackground(String… arg) { Bitmap bmp = null; try { URL url = new URL(arg[0]); bmp = BitmapFactory.decodeStream(url.openConnection() .getInputStream()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); return null; } return bmp; } @Override protected void […]

每次都可以创建新的毕加索实例

是否可以创建一个新的毕加索实例来加载每个图像。例如: Picasso.with(context) .load(url) .placeholder(R.drawable.placeholder) .error(R.drawable.error) .centerInside( .tag(context) .into(holder.image); 在listAdaptor getView() 。每次都不会创建新的LruCache ,这最终会导致OOM。 传递给Picasso的Context也可以是一个Activity Context : /** Start building a new {@link Picasso} instance. */ public Builder(Context context) { if (context == null) { throw new IllegalArgumentException(“Context must not be null.”); } this.context = context.getApplicationContext(); }

毕加索的“无法绘制回收的位图”例外

我有一个与RemoteControlClient交互的音乐播放器应用程序。 我需要加载专辑封面图像以在锁定屏幕小部件中显示它。 我尝试使用Piccasso来实现这一目标。 我写了下面的代码: private final Target artworkTarget = new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) { remoteControlClient.editMetadata(false).putBitmap(RemoteControlClientCompat.MetadataEditorCompat.METADATA_KEY_ARTWORK, bitmap).apply(); } @Override public void onBitmapFailed(Drawable drawable) { Log.e(Constants.LOG_TAG, “Artwork loading failed”); } @Override public void onPrepareLoad(Drawable drawable) { } }; … private void playNextSong(int songPosition) { … String artworkUrl = Constants.Urls.BASE_ARTWORK_URL + currentSong.getArtworkId(); […]

如何检索缩略图旋转

我正在创建一种“图库”应用程序,它在网格中显示所有图像。 问题是:某些图像没有以正确的方向显示。 这是检索缩略图的代码 final String[] projection = { MediaStore.Images.Thumbnails.DATA, MediaStore.Images.Thumbnails.IMAGE_ID }; //query the thumbnails provider Cursor thumbnailsCursor = context.getContentResolver().query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, projection, null, null, null); if (thumbnailsCursor.moveToFirst()) { do { //get the thumbnail path fullPath = thumbnailsCursor.getString(fullPathColumnIndex); thumbnailUri = Uri.parse(fullPath); //add the uri to the list thumbnailsList.add(thumbnailUri); } while (thumbnailsCursor.moveToNext()); thumbnailsCursor.close(); 在BaseAdapter的getView()内部我使用Picasso图像加载器库来显示缩略图,但有时候方向是错误的。 Picasso.with(context).load(new File(photoItem.thumbnail.getPath())).noFade().into(holder.photoImageView); 我已经尝试查询真实的照片数据并检索方向,但过程太慢(几秒钟)并且显示的图像太大。

使用毕加索加载图像,在角落中显示颜色

我使用Picasso库在我的应用程序中加载图像。 但在某些图像中,它显示了一个彩色的角落。看到附加图像中的红色。 有谁知道为什么会这样? 如何解决这个问题? 码: Picasso picasso = Picasso.with(getActivity()); picasso.setDebugging(true); picasso.load(downloadPath+imgDetailPhoto) .placeholder(R.drawable.no_image) .error(R.drawable.no_image) .into(eventImage, new Callback() { @Override public void onSuccess() { } @Override public void onError() { Log.d(“Error…”, “picasso load error”); Picasso.with(getActivity()).load(R.drawable.no_image).into(eventImage); } });

OkHttp + Picasso + Retrofit

问题是如何将所有这3个库合并到一个项目中? 使一个OkHttpClient成为Picasso和Retrofit的背景图层。 如何在Volley lib中进行优先级更改。 (分页)?

毕加索图像加载

我试图在Picasso 2.5.2的帮助下从gridview中的摄像机路径加载图像 存储/模拟/ 0 / DCIM /相机/ IMG_20150822_133220.jpg这里是路径。 我也尝试了在毕加索的Github回购中给出的问题的解决方案。 但它并没有解决我的问题。 我尝试使用毕加索的转换,但图像没有从相机路径加载。 我试过这个 File imageFile = new File(data.path); Picasso.with(mContext) .load(imageFile) .placeholder(R.drawable.default_error) .error(R.drawable.default_error) .resize(mItemSize, mItemSize) .centerCrop() .into(image);

如何使用Picasso库下载和缓存位图

我使用以下方法 Bitmap bitmap = Picasso.with(ListofCardsActivity.this) .load(overLayUrl).get(); 下载并从url获取图像。 这种方法是否每次都从url下载图像,即使已经下载了? 我想要的是,一旦下载了图像,那么从下一次起,我应该从缓存中获取图像,无需下载。 如果我们有像上述要求的方法。 请告诉我

Android内存管理:屏幕密度,请求的图像大小和可用堆

猜猜看,另一个Android-Bitmap-OOM问题! 背景 虽然压力测试我们的应用程序,但已经注意到,在持续的大量使用(类似于猴子跑步者)之后,可以最大限度地提高应用程序的进程内存分配,并在随后的堆栈跟踪中记录OutOfMemoryexception。 当选择ViewPager下的页面时,应用程序会下载图像(一次大约3个)。 当应用程序的长度和呼吸被执行时,可以下载280多个图像。 该应用程序使用Picasso by Square进行图像下载抽象。 值得注意的是,在我们的应用程序代码中,我们没有直接操作Bitmaps …我们相信,非常有才华的Square Inc.员工正在做得比我们更好。 这是一张照片 下图显示了dalvikvm-heap日志消息下记录的堆分配。 红点表示用户将一组新文章带入应用程序,以加强未完成的工作量并对应用程序施加压力…… DALVIKVM堆分配http://img.androidcookie.com/android/FgsiN.jpg 图1: Nexus One堆分配; OOM发生在80MB + 到目前为止的调查 针对Nexus S,Nexus 4,Wildfire,HTC Incredible以及众多其他测试设备,轶事测试表明,内存管理足以让DVM GC“跟上”应用程序完成的繁重工作。 然而,在诸如Galaxy S II,III,IV和HTC One的高端设备上,OOM是普遍的。 事实上,如果有足够的工作要做,我会想象我们所有的设备最终都会出现故障。 这个问题 屏幕密度(我们请求的图像大小基于ImageView的大小),进程内存分配和给定大小的图像数量之间显然存在关系,这将导致应用程序超出其堆限制。 我即将开始量化这种关系,但希望SO社区能够关注这个问题,并且(a)同意或不同意这种关系是值得的,以及(b)提供文献,说明如何最好地建立这种关系。 重要的是要注意,如果我们破坏图像质量,我们的OOM都会消失,但唉,UX很差,这就是为什么我们想要最有效地使用可用堆来切割。 附注:这是负责将这些图像加载到已经布局的视图中的部分代码; picassoInstance.load(entry.getKey()) .resize(imageView.getMeasuredWidth(), imageView.getMeasuredHeight()) .centerCrop() .into(imageView); 上面提到的“图像质量的潇洒”只是将imageView.getMeasured…除以“4”之类的数字。