在 API 21+ 上使用带有 srcCompat 的 VectorDrawables 将 Android 支持库更新到 23.2.0
Update Android Support Library to 23.2.0 using VectorDrawables with srcCompat on API 21+
很高兴 pre-lollipop 设备现在可以通过支持库 23.2.0 使用 VectorDrawables。虽然我在 API 21+ 上有图像显示问题,但在低端设备上一切正常。我正在使用 Gradle 插件 1.5,所以我的 build.gradle 包含这个:
// Gradle Plugin 1.5
android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
然后我在布局中使用下一个代码:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/my_vector_drawable" />
我在 parent 的 ViewGroup 中声明了这个属性:
xmlns:app="http://schemas.android.com/apk/res-auto"
但仍然 Android Studio 显示此错误,但项目可以构建并且 运行
"Unexpected namespace prefix "app" found for tag ImageView"
这就是我在 Android 4.3 上得到的结果:
和Android 5.1:
是新支持库的bug还是我做错了什么?
"Unexpected namespace prefix "app" found for tag ImageView"
您必须在布局中声明命名空间(通常在根元素中):
<ImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/my_vector_drawable" />
为了解决您的图像缩放问题,您是否尝试过将 scaleType='fitXY'
设置为您的 ImageView?
(您现在可以安全地忽略该 Lint 错误,同时将 tools:ignore="MissingPrefix"
添加到您的 ImageView)。
很高兴 pre-lollipop 设备现在可以通过支持库 23.2.0 使用 VectorDrawables。虽然我在 API 21+ 上有图像显示问题,但在低端设备上一切正常。我正在使用 Gradle 插件 1.5,所以我的 build.gradle 包含这个:
// Gradle Plugin 1.5
android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
然后我在布局中使用下一个代码:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/my_vector_drawable" />
我在 parent 的 ViewGroup 中声明了这个属性:
xmlns:app="http://schemas.android.com/apk/res-auto"
但仍然 Android Studio 显示此错误,但项目可以构建并且 运行
"Unexpected namespace prefix "app" found for tag ImageView"
这就是我在 Android 4.3 上得到的结果:
和Android 5.1:
是新支持库的bug还是我做错了什么?
"Unexpected namespace prefix "app" found for tag ImageView"
您必须在布局中声明命名空间(通常在根元素中):
<ImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/my_vector_drawable" />
为了解决您的图像缩放问题,您是否尝试过将 scaleType='fitXY'
设置为您的 ImageView?
(您现在可以安全地忽略该 Lint 错误,同时将 tools:ignore="MissingPrefix"
添加到您的 ImageView)。