最新版本的Android支持库(23.2)增加了对矢量绘图的支持。它似乎是通过在本身不支持矢量绘图的平台上动态栅格化矢量来实现的。
但是,栅格化图像似乎是固定大小,而非依赖于使用情况。这是一个例子。
矢量
<ImageView
android:layout_width="128dp"
android:layout_height="128dp"
android:id="@+id/imageView"
app:srcCompat="@drawable/vector1"/>
布局
{{1}}
载体为24dp x 24dp。它用于一个128dp x 128dp的ImageView。在不支持矢量绘图的平台上,生成的图像模糊,因为矢量以16dp光栅化并调整为128dp。
我发现的唯一解决方案是为每个预期大小创建一个单独的矢量drawable。创建一堆只有高度和宽度变化的重复向量非常烦人。如果您希望drawable为fill_parent或以其他方式动态调整大小,那么这并不能解决问题。
必须在高级几乎中定义矢量图像的尺寸,这首先会破坏使用矢量的好处。
有没有人有真正的工作?
答案 0 :(得分:15)
载体在16dp光栅化并调整为128dp
最多getIdentifier
,Android从提供的"array"
开始创建光栅图像。这个东西在支持库的23.1
中发生了变化。如果您正确设置了VectorDrawable
,则会发生此行为。
如果您使用v23.2
,请添加
build.gradle
如果您使用的是1.5.0
Gradle Plugin 2.0+
答案 1 :(得分:2)
增加android:XML中的宽度和高度。
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
在我增加大小后,生成的png大小也增加了,图像不再显得模糊。