【发布时间】:2014-09-18 20:06:59
【问题描述】:
我有一个在 ImageView 中显示图像的应用,并且遇到了专门针对 Android 4.1.2 的问题。已确认不能在三个单独的 4.1.2 设备上工作,而在 2.3.7、4.2.1、4.3 和 4.4.2 上工作。该错误发生在几个不同的图像上,但不是全部。某些特定的 JPEG 文件似乎无法按预期工作。
它的实际外观,以及它在 Android 4.1.2 上的显示方式:
上图(左)就是这样一个有问题的图像文件。
设置显示图片背后的代码总结如下:
Bitmap bitmap, background;
ImageView imageView = (ImageView)findViewById(R.id.imageView);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inPurgeable = true;
options.inInputShareable = true;
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.dog, options);
background = bitmap.copy(Bitmap.Config.RGB_565, true);
Canvas canvas = new Canvas(background);
canvas.drawBitmap(bitmap, 0, 0, null);
// Some calls to canvas.drawText(....) here, but doesn't have to happen for the error to occur
imageView.setImageBitmap(background);
我发现我可以在不知道为什么的情况下在 Photoshop 中调整并重新保存上述照片以使其正常工作。由于我有几个我宁愿不必这样做。
我想知道在 Android 4.1.2 上出现此错误的原因是什么,是否可以通过某种编程方式来修复它?
我已经在 Google 视图“倾斜”、“倾斜”、“扭曲”和类似的视图上尝试了运气,但很少提及它并且没有修复。这是我发现的屏幕截图提及:
【问题讨论】:
-
能不能把RGB模式改成888看看有没有?我记得前段时间我在使用 rgb565 时遇到了一些奇怪的问题......
标签: android android-canvas android-imageview android-4.2-jelly-bean android-bitmap