Android XML drawables缩放

时间:2016-03-07 18:33:56

标签: android icons drawable screen-resolution

我很难理解XML drawables背后的使用模式。 一些消息来源说他们应该根据分辨率自动扩展。我的经历说不同。 例如,在像这样的向量中使用绝对大小:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp" ... />

实际上会在所有分辨率下以24dp的大小显示此形状。我根本没有观察到任何自动缩放,例如平板电脑的分辨率看起来很小。

所以我在values / dimens.xml中声明了各种大小,并将其添加到如下形状:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="@dimen/status_icon_size"
        android:height="@dimen/status_icon_size" ... />

哪种方法修复了原始问题,但在添加min-sdk = 19(Android 4.4)后无法构建。从这些向量生成位图时,编译器似乎在使用dimens.xml中的值时遇到问题:

Error:Error: Width (0) and height (0) cannot be <= 0

我想避免在所有可能的drawables_w *** dp中使用多个icon.xml,就像使用dimens.xml一样。我已经有一堆dimens.xml了。矢量图标的整个目的不是容易扩展吗?

问:有没有办法制作一个适用于所有屏幕分辨率的可正确缩放图标,只需在/ res / drawable中使用一个XML文件实例?

1 个答案:

答案 0 :(得分:1)

避免此错误Error:Error: Width (0) and height (0) cannot be <= 0 将此字符串添加到app build.gradle

defaultConfig {
  ...
  vectorDrawables.useSupportLibrary = true
}