【发布时间】:2015-03-09 15:50:01
【问题描述】:
在 Lollipop 设备中解码图像时遇到问题。
下图显示了一个“测试应用”,它解码了 4 个 png 文件。
左 = kitkat 4.4.4,右 = 棒棒糖 (5.0.1)
两者都使用相同的设备类型:MOTO G 第二代。
相关代码:
Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = true;
options.inScaled = true;
options.inDensity = 160;
options.inTargetDensity = 320;
Bitmap bmp = BitmapFactory.decodeStream(new ByteArrayInputStream(imageAsBytes), null, options);
屏幕指标:
Density......: 2
ScaledDensity: 2
DensityDPI...: 320
Size.........: 720x1184
我在网上找到了任何解释。
谁能指出为什么会这样?
编辑:
因为它只发生在棒棒糖 + TargetDensity = 320 + Density = 160 的情况下,所以我做了以下解决方法:
if ((android.os.Build.VERSION.SDK_INT >= 21) && (options.inTargetDensity == 320) && (options.inDensity = 160))
{
options.inDensity = options.inTargetDensity;
}
但我真的很感谢一些提示,以弄清楚发生了什么......
【问题讨论】:
-
嗨,克里斯蒂安。您是否同时找到了解决方案。我有完全一样的问题?克里斯@guruk.com
-
只是一种解决方法。检查问题的编辑...干杯。
-
谢谢...这很奇怪。似乎它不仅仅是 moto g 。而是几个摩托罗拉设备。我想知道为什么没有其他人写过。
-
是的,我也有同样的疑惑……我看到没有人谈论它。
-
小改进:options.inDensity = options.inTargetDensity = DisplayMetrics.DENSITY_DEFAULT;无需做额外的检查点。我在 4.4.2、5.0.1 甚至 5.1 上对其进行了测试
标签: android android-5.0-lollipop bitmapfactory