Do I understand this correctly:
All android devices fall in one of these 4 density buckets: ldpi, mdpi, hdpi, xhdpi.
So, if a drawable resource is provided for each of these for densities (a drawable or with the same name exists in each of these folders), then it is not necessary to provide a drawable with the same name in /res/drawable or /res/drawable-nodpi.
Is my understanfing correct?
So, the only reason, why it makes sense to provide that same resource in /res/drawable would be, to make the app more future-proof, in case a new density bucket is defined for Android OS?
Through this paragraph, you are more or less correct. You go a bit “off the rails” with your next paragraph:
Not really.
You put resources in
res/drawable/that are intrinsically scalable (e.g., aShapeDrawable). You put resources inres/drawable-nodpi/that, for some reason, you do not want to be scaled to match the device density.If Android invents a new density bucket (e.g.,
-uhdpifor an ultra-high density of 400dpi), Android will probably do what it does today if you skip a density bucket: scale one of your other editions. For example, if you have-xhdpiand do not have-hdpi, Android will down-sample the-xhdpiimage for use on an-hdpidevice.