Android:使用 drawable 与 drawable-nodpi 文件夹时内存消耗存在巨大差异

Android: Huge difference in memory consumption when using drawable vs drawable-nodpi folders

我有使用 Android Studio 创建的基本 Android 应用程序,在 ImageView 中加载了单个图像,如下所示:

ImageView iv = (ImageView)findViewById(R.id.imageView);
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
iv.setImageResource(R.drawable.g01);

图像大小为 1280x853 pix,没什么大的。当我将图像存储在 drawable 文件夹中时,应用程序消耗的运行时内存为 24.35 MB,而图像存储在 drawable-nodpi 文件夹中时为 11.85 MB。在分辨率为 1280x720 pixxhdpi 设备上测试。

在我的真实应用程序中,75 MB 与 25 MB 的差异更大。

为什么不同?我认为 drawabledrawable-nodpi 文件夹基本相同并且用途相同?

Why the difference? I thought that drawable and drawable-nodpi folders are basically the same and serve the same purpose?

不,他们不是。 drawable 根据设备的密度缩放其内容,drawable-nodpi 不会。在第一种情况下你会得到位图密度时间 width/height 原来的