在API 21+上使用带srcCompat的VectorDrawables将Android支持库更新至23.2.0;

在API 21+上使用带srcCompat的VectorDrawables将Android支持库更新至23.2.0;,android,android-imageview,android-support-library,android-vectordrawable,Android,Android Imageview,Android Support Library,Android Vectordrawable,棒极了,现在pre-lollipop设备可以通过支持库23.2.0使用VectorDrawables。虽然我在API21+上有图像显示问题,但在较低的设备上一切正常。我使用的是Gradle插件1.5,因此我的build.Gradle包含以下内容: // Gradle Plugin 1.5 android { defaultConfig { generatedDensities = [] } // This is handled for you by

棒极了,现在pre-lollipop设备可以通过支持库23.2.0使用VectorDrawables。虽然我在API21+上有图像显示问题,但在较低的设备上一切正常。我使用的是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" />
但Android Studio仍然显示了这个错误,但项目可以构建并运行

为标记ImageView找到意外的命名空间前缀“app”

这就是我在Android 4.3上得到的结果:

和安卓5.1:

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

为标记ImageView找到意外的命名空间前缀“app”

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


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

(您现在可以安全地忽略该Lint错误,也可以将
tools:ignore=“MissingPrefix”
添加到您的ImageView中)

xmlns:app="http://schemas.android.com/apk/res-auto"
<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" />