无效的可绘制标签向量

新手上路,请多包涵

我正在尝试在棒棒糖之前的设备上使用矢量可绘制对象。我按照 这里 的指示做了所有的事情,但我仍然遇到了这个崩溃。

构建.gradle:

 buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-beta6'
    }
}
apply plugin: 'com.android.application'

repositories {
    maven { url 'http://maven.android-forever.com' }
    jcenter()
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.test.app"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.android.support:design:23.2.0'
    compile "de.greenrobot:eventbus:2.4.0"
    compile 'de.greenrobot:greendao:2.1.0'
    compile "com.af:android-utility:1.0.0.9"
    compile project(':volleyplus')
    compile project (':libvlc')
}

三角形.xml:

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/triangle_v"/>
</selector>

_三角形v.xml

 <vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="100dp"
    android:width="100dp"
    android:viewportHeight="100"
    android:viewportWidth="100">

<path
    android:name="triangle"
    android:fillColor="#FF0000"
    android:pathData="m 50,0 l 50,100 -100,0 z"/>

</vector>

布局.xml

 <ImageView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="@drawable/triangle"/>

我也试过 app:srcCompat 在那种情况下,drawable 只是不显示。

原文由 pedja 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 213
2 个回答

问题是我的活动没有扩展 AppCompatActivity 而是常规 Activity

这在支持向量可绘制对象的任何文档/示例中均未指定

原文由 pedja 发布,翻译遵循 CC BY-SA 3.0 许可协议

在棒棒糖之前的设备上从选择器加载向量时也遇到了这个问题:

在 onCreate 方法中使用 AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

设置旧平台(< API 21)上的矢量可绘制对象是否可以在 android.graphics.drawable.DrawableContainer 资源中使用。启用后,AppCompat 可以拦截来自框架的一些可绘制对象的膨胀,从而在 android.graphics.drawable.DrawableContainer 资源中启用矢量可绘制对象的隐式膨胀。

 protected final void onCreate(Bundle savedInstanceState) {
         AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
         super.onCreate(savedInstanceState);
         ...

原文由 Aldasa 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题