为什么在 android studio 中将 PNG 图像转换为位图图像时,像素乘以 3。

why when coverting PNG img to a Bitmap img in android studio, pixels multiply by 3.

我计算inSampleSize 以使用位图解码方法调整大png 文件的大小。 使用 .getWidth() 和 .getHeight() 创建此新位图和日志信息时,其像素数相对于其原始大小增加了 3。

代码:来自第 121-204 行

https://github.com/abisai1221/android-bitmaps/blob/master/png%20to%20bmp

非常感谢所有帮助。

我看到了另一个 post 大小调整问题,并遇到了 BitmapFactory.options 的“.inScaled”字段。

这默认执行以将位图缩放到目标密度。

我将此字段设置为 false 以防止它执行并且图像完美输出,但我仍然对为什么它将图像缩放 3 倍感到困惑。

我敢打赌应用的屏幕密度。当您从资源加载位图时,您必须将它们放在正确的可绘制文件夹中,因为 Android 会自动缩放它们以匹配您的 phone 的屏幕密度。每个文件夹应仅包含一种特定密度的图像。例如,如果您的 phone 中有一个高密度屏幕,您应该将图像放在 drawable-hdpi 文件夹中,以便在不缩放的情况下获取它们。如果你得到 3 倍大的图像,你可能有一个非常密集的屏幕,比如 Nexus 5 或最近的 Galaxy S phone。要禁用缩放,请将图像放在 drawable-nodpi 文件夹中。