我试图在我的 Android 应用程序中使用矢量绘图:
在 Android 5.0(API Level 21)及以上版本中,您可以定义向量绘图程序 哪个尺度不会失去定义。
使用这个可画的:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="@color/colorPrimary" android:pathData="M14,20A2,2 0 0,1 12,22A2,2 0 0,1 10,20H14M12,2A1,1 0 0,1 13,3V4.08C15.84,4.56 18,7.03 18,10V16L21,19H3L6,16V10C6,7.03 8.16,4.56 11,4.08V3A1,1 0 0,1 12,2Z" />
以及这张图片:
<ImageView
android:layout_width="400dp"
android:layout_height="400dp"
android:src="@drawable/icon_bell"/>
当试图以400dp 显示图标时(在一个大的高分辨率的大约2015年的移动设备上运行棒棒糖)产生这个模糊的图像:
将矢量定义中可绘制的宽度和高度更改为200dp 可以显著改善400dp 渲染大小的情况。然而,将其设置为 TextView 元素的可绘制图标(即文本左侧的图标)现在会创建一个巨大的图标。
我的问题是:
1)为什么在矢量图中有一个宽度/高度规范?我认为这些东西的全部意义在于它们可以无损地向上和向下放大,使得宽度和高度在它的定义中变得毫无意义?
2)是否有可能使用一个矢量绘制,作为一个24dp 的工程上的 TextView 绘制,但扩展很好,以使用尽可能多的大图像?例如,我如何避免创建不同大小的多个矢量绘图,而是使用其中一个规模,以我呈现的需求?
3)如何有效地使用 width/Height 属性,这与 viewportWidth/Height 有什么区别?
其他详情: