Search code examples
javaandroiddrawabledpi

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


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?


Solution

  • 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