我在stackoverflow以及其他资源上阅读了app:srcCompat
,该属性的主要目的是支持vector-drawable。但是当android:src
对矢量绘制工作正常时,我感到很困惑。
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M10.18,9"/>
<path
android:fillColor="#FF000000"
android:pathData="M21,16v-2l-8,-5V3.5c0,-0.83 -0.67,-1.5 -1.5,-1.5S10,2.67 10,3.5V9l-8,5v2l8,-2.5V19l-2,1.5V22l3.5,-1 3.5,1v-1.5L13,19v-5.5l8,2.5z"/>
</vector>
我将上述代码保存在可绘制目录的abc.xml
文件中,然后将其与android:src
一起使用
<ImageView
android:id="@+id/imageView"
android:layout_width="300dp"
android:layout_height="300dp"
android:src="@drawable/abc" />
工作正常。然后app:srcCompat有用或者它们之间有什么区别?或者我理解错了?
答案 0 :(得分:3)
是的,有区别。有一篇关于它的文章here。
基本上app:srcCompat
将在加载向量drawable时使用旧的API。您会发现直接引用app:srcCompat
之外的矢量绘图将在Lollipop之前失败,您可能在Lollipop或更高版本上运行android:src
。