app:srcCompat 仍然需要最低 Android 支持 5.0 吗?



如果我使用 android:src="@drawable/myicon",我有一个矢量可绘制对象在 Android 5.0.1 上错误地显示为完全白色,使用 app:srcCompat 代替正确显示它。我以为 Android 5 已经支持矢量可绘制对象,你不再需要 app:srcCompat 了?我正在AppCompatActivity中使用它,这是可绘制对象:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="45dp"
android:height="45dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M22.2222,31.1111l8.8889,0l0,-8.8889l-8.8889,0z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M8.8889,31.1111l8.8889,0l0,-8.8889l-8.8889,0z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M22.2222,17.7778l8.8889,0l0,-8.8889l-8.8889,0z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M0,40L40,40L40,0L0,0L0,40ZM4.4444,35.5556L35.5556,35.5556L35.5556,4.4444L4.4444,4.4444L4.4444,35.5556Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M8.8889,17.7778l8.8889,0l0,-8.8889l-8.8889,0z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

根据我的经验,在某些Android版本中,矢量可绘制对象仍然存在许多问题,这些问题可以使用app:srcCompat解决,至少使用AppCompatActivity可以解决。我想解释是使用 app:srcCompat 使用不同的代码来处理此属性,这可能解决了最初在 Android 框架版本中未解决的问题。

最新更新