使用带有API 21+上的srcCompat的VectorDrawables将Android支持库更新到23.2.0

时间:2016-03-05 13:22:04

标签: android android-imageview android-support-library android-vectordrawable

很棒的是棒棒糖前设备现在可以使用支持库23.2.0来使用VectorDrawables。虽然我在API 21+上有图像显示问题,但在较低的设备上一切正常。我使用Gradle Plugin 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" />

我已在我父母的ViewGroup中声明了这个属性:

xmlns:app="http://schemas.android.com/apk/res-auto"

但Android Studio仍显示此错误,但项目可以构建并运行

  

&#34;意外的命名空间前缀&#34; app&#34;找到标签ImageView&#34;

这就是我在Android 4.3上获得的结果: enter image description here

和Android 5.1: enter image description here

这是新支持库的错误还是我做错了什么?

2 个答案:

答案 0 :(得分:4)

要解决图像缩放问题,您是否尝试将scaleType='fitXY'设置为ImageView?

(您现在可以放心地忽略Lint错误,同时将tools:ignore="MissingPrefix"添加到ImageView中。

答案 1 :(得分:0)

  

&#34;意外的命名空间前缀&#34; app&#34;找到标签ImageView&#34;

您必须在布局中声明命名空间(通常在根元素中):

<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" />