当前位置:  开发笔记 > 编程语言 > 正文

什么是-anydpi和-nodpi之间的区别?

如何解决《什么是-anydpi和-nodpi之间的区别?》经验,为你挑选了4个好方法。

如果您使用Android Studio 1.5.0中的矢量资源向导,则使用该向导导入的任何矢量可绘制XML都会进入res/drawable/.

但是,build/目录和生成的APK显示这些XML文件被移动到res/drawable-anydpi-v21/资源目录中.该-v21部分是有意义的,因为VectorDrawable仅在API Level 21+上支持.但是,-anydpi似乎没有证件.我-nodpi原本期望,无论是原始导入目的地还是构建系统选择移动它的地方.

有没有人看到关于什么-anydpi方式的正式声明,以及它与它的关系是-nodpi什么?我正在寻找实际效果,而不仅仅是一些代码评论暗示的内容.



1> rds..:
nodpi

这些是与密度无关的资源.无论当前屏幕的密度如何,系统都不会缩放使用此限定符标记的资源.

例如:

drawable- nodpi /dot.png

点在xxhdpi上看起来很小,在ldpi上很大.

但是,资源解析程序将匹配特定的限定符(如果存在).

例如

drawable- hdpi /eg.png

drawable- nodpi -v21/eg.xml

在Lollipop(API 21)hdpi设备上,使用位图.

在Lollipop(API 21)xhdpi设备上,使用向量.

anydpi

这些资源在任何dpi中都优先.

例如

drawable- hdpi /eg.png

drawable- anydpi -v21/eg.xml

在Lollipop(API 21)hdpi设备上,使用矢量.

在Lollipop(API 21)xhdpi设备上,使用向量.

参考

注意:在更改Ic3288d0236fe0bff20bb1599aba2582c25b0db32中添加了anydpi.



2> Vishavjeet S..:

的源代码包含以下注释(线639):

/**
 * Value for {@link #densityDpi} for resources that scale to any density (vector drawables).
 * {@hide}
 */
public static final int DENSITY_DPI_ANY = 0xfffe;

/**
 * Value for {@link #densityDpi} for resources that are not meant to be scaled.
 * {@hide}
 */
public static final int DENSITY_DPI_NONE = 0xffff;

希望这可以消除混乱.


"希望这能清除混乱" - 不是真的.目前尚不清楚"规模与任何密度"和"不应缩放"之间的差异在实践中意味着什么.`-nodpi`目录中的drawables肯定会根据大小进行缩放,根据有关如何使用drawable的规则.
它被添加到https://android.googlesource.com/platform/frameworks/base/+/31245b4%5E!/,从中你可以了解它可能修复了一些错误17007265

3> dzikovskyy..:

nodpi:所有密度的资源.这些是与密度无关的资源.无论当前屏幕的密度如何,系统都不会缩放使用此限定符标记的资源.

anydpi:此限定符匹配所有屏幕密度,并优先于其他限定符.这对矢量绘图很有用.在API Level 21中添加.



4> Androidcoder..:

我使用drawable-nodpi作为一切,我有很多大图形."扩展"图形的一个未记录的后果是它会以指数方式增加内存使用量.因此,如果你有'drawable'的100M图形,它将缩放到400M或1.6G,具体取决于用户设备的分辨率.设备分辨率不断提升.当然,扩大规模实际上不会增加​​图形的"清晰度".无论如何,绘图操作可以指示图形相对于屏幕大小的大小,不需要使用多个绘图文件夹来膨胀应用程序.


被低估的答案。我遇到了同样的问题:图像大100KB,但在加载时经常出现OOM错误。该应用程序崩溃,表明它无法分配18MB !!!无法理解如何将这100KB转换为18MB,但这实际上是这种扩展的结果。将图像切换为无dpi可解决此问题。
推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有