app:srcCompat - Vector drawable出现在设计预览中,但不会显示在应用程序中

时间:2016-03-25 13:28:26

标签: android imageview android-appcompat xml-drawable

抽拉/ information.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        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_width="24dp"
    android:background="#f00"
    android:layout_height="24dp"
    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中。其他项目正确渲染,只有矢量图形不会渲染。

此外,Lint错误显示在布局文件

unexpected namespace prefix "app" found for tag ImageView app:srcCompat

2 个答案:

答案 0 :(得分:6)

将此行vectorDrawables.useSupportLibrary = true作为defaultConfig语句的一部分插入build.graddle文件中。我已经使用了here提供的描述并且它有效。您必须注意,对于Gradle 2.0+和Gradle 1.5,配置看起来有所不同。

无论您使用的是Gradle版本,都必须确保您的活动必须延长AppCompatActivity才能提供矢量支持。

答案 1 :(得分:1)

当我遇到你的问题时,我找到了这个答案。 快速回答是你应该使用 android.support.v7.widget.AppCompatImageView app:srcCompat

link解释了它。