Android: Huge difference in memory consumption whe

2020-07-22 03:42发布

问题:

I have basic Android application created with Android Studio with single image loaded in ImageView like this:

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

Image size is 1280x853 pix, nothing huge. When I store the image in drawable folder runtime memory consumed by app is 24.35 MB vs 11.85 MB when image is stored in drawable-nodpi folder. Tested on xhdpi device with resolution of 1280x720 pix.

In my real life app, difference is even greater 75 MB vs 25 MB.

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

回答1:

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

No they are not. drawable scales its content per the device's density, drawable-nodpi doesn't. In the first case you will get a bitmap density time width/height the original one