app:srcCompat - 矢量绘图显示在设计预览中,但不显示在应用程序中
Posted
技术标签:
【中文标题】app:srcCompat - 矢量绘图显示在设计预览中,但不显示在应用程序中【英文标题】:app:srcCompat - Vector drawable shows up in design preview, but doesn't show up in app 【发布时间】:2016-07-13 06:20:35 【问题描述】:drawable/information.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:
android:
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0,0 0,2 12A10,10 0,0 0,12 22A10,10 0,0 0,22 12A10,10 0,0 0,12 2Z"/>
</vector>
LayoutofCardView.xml
<ImageView
android:layout_
android:background="#f00"
android:layout_
android:id="@+id/informationImageView"
app:srcCompat="@drawable/information"
tools:src="@drawable/information"
/>
build.gradle
apply plugin: 'com.android.application'
android
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig
applicationId "com.company"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
generatedDensities = []
aaptOptions
additionalParameters "--no-version-vectors"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
packagingOptions
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE.txt'
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:cardview-v7:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
compile 'com.android.support:support-v4:23.2.1'
图像在 android studio 的设计窗格中正确显示。但是当我运行应用程序时,图像没有显示出来。图片在cardView中,在recyclerviewfragment中。其他项目正确渲染只有矢量drawbles不渲染。
另外,布局文件中会显示 Lint 错误
unexpected namespace prefix "app" found for tag ImageView app:srcCompat
【问题讨论】:
【参考方案1】:将这一行 vectorDrawables.useSupportLibrary = true
作为 defaultConfig 语句的一部分插入到您的 build.graddle 文件中。我已经使用了here 提供的描述并且它有效。认为您必须意识到 Gradle 2.0+ 和 Gradle 1.5 的配置看起来不同。
无论您使用的是什么 Gradle 版本,您都必须确保您的活动必须扩展 AppCompatActivity 以提供矢量支持。
【讨论】:
会调查并回复您。我在上一个项目中遇到了这个问题。谢谢! 浪费了关键的 2 小时,然后偶然发现了这一点。非常感谢。【参考方案2】:当我遇到您的问题时,我找到了这个答案。 快速回答是您应该使用 android.support.v7.widget.AppCompatImageView 和 app:srcCompat
这个link解释一下。
【讨论】:
以上是关于app:srcCompat - 矢量绘图显示在设计预览中,但不显示在应用程序中的主要内容,如果未能解决你的问题,请参考以下文章
Android 布局 XML 中 app:srcCompat 和 android:src 的区别