我从 SQLiteDatabase 获取图像(.png)并使用此代码将字节数组解码为位图:
Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = true;
options.inScaled = true;
options.inDensity = 240;
options.inTargetDensity = metrics.densityDpi;
Bitmap bmp = BitmapFactory.decodeStream(new ByteArrayInputStream(imageAsBytes), null, options);
如您所见,图像 (3) 应该像 (2),但事实并非如此。
1) = 没有比例的图像 (metrics.densityDpi = 240);
2) = 上面相同的 .png,但在 res/drawable 中编译;
3) = 缩小比例的图像(metrics.densityDpi = 120);
我也试过了options.inDither = false;
,但我看不出有什么区别。
那么我的代码有什么问题?