图像不使用picasso库在Android 5.0中加载

我正在使用Picasso library v2.5.2的演示应用程序。 它在所有Android操作系统版本上工作正常,但不在棒棒糖。

图片大小为130KB,不适合我加载。 大小较小的图片加载正确。

这里是我的代码下载位图和设置在ImageView。

target = new Target() { @Override public void onPrepareLoad(Drawable drawable) {} @Override public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) { if(bitmap != null) { imageView.setImageBitmap(bitmap); } } @Override public void onBitmapFailed(Drawable drawable) {} }; Picasso.with(this).load(URL).into(target); 

我不确定我还有什么额外的东西要做,所以我也会在棒棒糖上工作,或者这是lib中的错误?

Solutions Collecting From Web of "图像不使用picasso库在Android 5.0中加载"

这是一个已知的问题。 问题在于毕加索对Target参考依然较弱。 例如,要将它作为视图的标签存储起来,就需要使它变得强大。

 target = new Target() { @Override public void onPrepareLoad(Drawable drawable) {} @Override public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) { if(bitmap != null) { imageView.setImageBitmap(bitmap); } } @Override public void onBitmapFailed(Drawable drawable) {} }; imageView.setTag(target); Picasso.with(this).load(URL).into((Target) imageView.getTag()); 

编辑:

我build议你使用Glide ,这与毕加索非常相似,也是由Google推荐的。 正如你可以在这个线程的最后看到的,原始开发者通过使用额外的缓冲区来解决这个BitmapFactory问题。

如果只需要将图像加载到ImageView为什么要使用Target ? 只需使用这个:

  Picasso.with(this).load(URL).into(imageView, new Callback() { @Override public void onSuccess() { //Dimiss progress dialog here } @Override public void onError() { //And here } }); 

有关文档,请看这里 。

  Picasso.with(this).load("http://sofzh.miximages.com/android/island-beach-scenery-wallpaper.jpg").placeholder(R.mipmap.ic_launcher).fit().into(imageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() { } }); 

fit()将帮助你加载image.And在你的ImageView中使用android:adjustViewBounds =“true”。