javaandroidandroid-layouthtc-android

Why don't some xhdpi mobiles display image located in /res/drawable only?


This is a scenario. There are folders:

An image (usually background, but not bound to such images only) is located in /res/drawable only.

I test the app on Galaxy S3 and the background is displayed properly. I test on HTC One X and background image is not being displayed.

If I copy the image from /res/drawable to /res/drawable-xhdpi, the One X will display image.

Thinking logically, this should not be happening, right?! If there is no image in drawable-xhdpi, then Android should look it into other folders until it reaches the default one /res/drawable and it should pull it from there.

Why is this not happening on some mobiles?

PS. I noticed the same issue with some tablets, but I cannot remember now which ones.

PPS. I mentioned background image here, but the issue is not bound to it. It also happens with other images. I am aware that xhdpi mobiles have issues with large images and I would not like you to think that the issue was with too large background image. It also happens with other images of "normal" size.


Solution

  • why do you want to put an image file into the drawable folder ?

    according to tips i've read over the internet , you should not put images files in the drawable folder .

    in the drawable folder you put only xml type drawables.

    if you want to put an image file , put it in any of the following folders (or add an additional qualifier for them , or use other qualifiers ) :

    images that are put into the drawable folder are treated as default , which is mdpi . so if you want to keep the file in the same screen density category , put it into the drawable-mdpi folder.

    another reason for not putting an image into the drawable folder is that android will automatically convert the file to 16 bit image for some devices (like the samsung galaxy s) , which will make the image look awful on some cases.

    here's a link that explains this issue .