android - 为什么 BitmapFactory.decodeResource 会缩放我的图像?

标签 android bitmap drawable android-resources bitmapfactory

我的 /res/drawable/ 目录中有一张 120x120px 的图片。这是所有设备所需的大小。

要加载此位图,我使用以下内容:

Bitmap tmpBmp = BitmapFactory.decodeResource(getResources(), R.drawable.myimage);

问题是当我测量 tmpBmp 时,尺寸是 360x360px。我知道如何将其缩小到我需要的 120x120,但这是浪费处理时间,尽管时间很短。

我假设这与屏幕密度有关,因为我的资源位于密度较低的目录中。

decodeResource 缩放图像的原因是什么?我该如何阻止它这样做?

最佳答案

默认的 drawable 目录假定图像需要从默认的 mdpi 大小缩放。如果您想禁用资源缩放,请将您的图像放在 drawable-nodpi 中。

请注意,与 mdpi 设备相比,120x120px 的图像如果显示在屏幕上,在 xxhdpi 设备上会小 3 倍(因为每英寸像素数是其三倍)。

关于android - 为什么 BitmapFactory.decodeResource 会缩放我的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144127/

相关文章:

Android - Facebook 登录仅在第一次导致 onResume 错误

android - 无法使用我自己的 Android 启动器接听 Skype 来电

java - Base64 编码位图返回冗长的字符串

android - 处理大位图和 android Activity 生命周期的内存不足错误

c# - 如何将 Android.Graphics 的 GetPixel 给出的 Int 转换为 Color?

Android - 仅可在顶部绘制圆角

java - 如何在android中获取两个日期之间的周间隔?

android - 应用程序崩溃 - 静音模式切换 - Android for Dummies

javascript - Cordova如何使用drawables

android - 在 Android 中自定义状态选项卡