这是原始图片:
这是使用ImageView渲染的图像:
但是,有时当图像在旋转木马中时,向图像滑动可能会导致图像正确渲染,这更加奇怪……
在LG G3(Android 5.1)和Genymotion(Android 4.4.4)上都观察到了这种行为.我正在使用Glide库来加载图像,使用ARGB_8888解码格式:
new GlideBuilder(this).setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
解决方法
这是一个已解决的问题
305.这是一个快速回顾:
此问题仅出现在JPEG格式的图像中(质量无关紧要).看起来它比ARGB_8888更显着地影响RGB_565,因此您可能希望将DecodeFormat切换到ARGB_8888(清除应用程序数据以检查问题是否已解决).但即使使用ARGB_8888也可以出现,因此请使用以下解决方案之一:
>使用DiskCacheStrategy.NONE(对于本地映像)或DiskCacheStrategy.SOURCE(对于远程映像)来防止Glide重新压缩映像:
Glide.with(this) .load(url) .diskCacheStrategy(DiskCacheStrategy.SOURCE) .into(imageView);
>使用asBitmap()和自定义BitmapEncoder始终将受影响的图像压缩为PNG:
Glide.with(this) .fromResource() .asBitmap() .encoder(new BitmapEncoder(Bitmap.CompressFormat.PNG,100)) .load(R.drawable.testimg) .into(imageView);