我首先想到的是Vector资产的目的是,它使我们能够在不影响图像质量的情况下进行放大/缩小.
如果是这样,我可以知道为什么在Android Studio中生成矢量图像时我们需要特定的大小?
我倾向于生成2种不同大小的Vector.
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M19,2h-4.18C14.4,0.84 13.3,0 12,0c-1.3,0 -2.4,0.84 -2.82,2L5,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,4c0,-1.1 -0.9,-2 -2,-2zM12,2c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM19,20L5,20L5,4h2v3h10L17,4h2v16z"/>
</vector>
Run Code Online (Sandbox Code Playgroud)
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="96dp"
android:height="96dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M19,2h-4.18C14.4,0.84 13.3,0 12,0c-1.3,0 -2.4,0.84 -2.82,2L5,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,4c0,-1.1 -0.9,-2 -2,-2zM12,2c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM19,20L5,20L5,4h2v3h10L17,4h2v16z"/>
</vector>
Run Code Online (Sandbox Code Playgroud)
除了android:width和android:height参数外,内容看起来相同.
我无法给你完整的解释,但这就是我的想法。
一些图像容器实际上依赖于可绘制对象的大小来正确绘制图像。他们无法使用viewportHeight和viewportWidth,因此width和height就是他们所寻找的。
就我而言,当加载Markeron时GoogleMap,我无法以编程方式更改标记的大小。地图使用可绘制的确切大小作为标记的大小。当我使用VectorDrawablefor 标记时,我必须将width和修改height为我想要的标记大小。
GoogleMap Marker我所说的是图像容器,它始终需要确切的源大小。
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |