Issue
If you use the Vector Asset wizard in Android Studio 1.5.0, any vector drawable XML you import using that wizard goes into res/drawable/.
However, the build/ directory, and the resulting APK show that those XML files get moved into a res/drawable-anydpi-v21/ resource directory. The -v21 part makes sense, as VectorDrawable is only supported on API Level 21+. However, -anydpi seems to be undocumented. I would have expected -nodpi, both for the original import destination and for where the build system elects to move it.
Has anyone seen official statements for what -anydpi means, and what its relationship is with -nodpi? I am looking for practical effects, not merely what some code comments hint at.
Solution
nodpi
These are density-independent resources. The system does not scale resources tagged with this qualifier, regardless of the current screen's density.
For instance:
- drawable-nodpi/dot.png
The dot will appear small on xxhdpi, big on ldpi.
However, the resource resolver will match a specific qualifier if it exists.
For instance
- drawable-hdpi/eg.png
- drawable-nodpi-v21/eg.xml
On a Lollipop (API 21) hdpi device, the bitmap is used.
On a Lollipop (API 21) xhdpi device, the vector is used.
anydpi
These resources take precedence in any dpi.
For instance
- drawable-hdpi/eg.png
- drawable-anydpi-v21/eg.xml
On a Lollipop (API 21) hdpi device, the vector is used.
On a Lollipop (API 21) xhdpi device, the vector is used.
Reference
Note: anydpi was added in change Ic3288d0236fe0bff20bb1599aba2582c25b0db32.
Answered By - rds
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.