【发布时间】:2016-04-18 09:00:25
【问题描述】:
我已经拥有的:
这是我的 ImageView:
<ImageView
android:id="@+id/play_pause"
android:layout_width="match_parent"
android:layout_height="@dimen/timer_button_layoutHeight"
app:srcCompat="@drawable/play_button_vector"
android:onClick="startOrPauseTimer"/>
我使用的是 Android 插件 2.0 版:
classpath 'com.android.tools.build:gradle:2.0.0'
我在应用级别 build.gradle 的 android 的 defaultConfig 中启用了矢量可绘制支持库标志:
vectorDrawables.useSupportLibrary = true
我还添加了vector drawable支持库依赖:
compile 'com.android.support:support-vector-drawable:23.2.1'
在 Activity 类中,我根据点击侦听器动态更改可绘制的矢量:
playPauseButton = (ImageView) findViewById(R.id.play_pause);
playPauseButton.setImageResource(R.drawable.play_button_vector);
问题:
我在棒棒糖之前的设备中发现资源未找到异常。该代码适用于棒棒糖。
android.content.res.Resources$NotFoundException: 文件 res/drawable/play_button_vector.xml 来自可绘制资源 ID #0x7f020119
在图像应该出现的地方我什么也看不到。但是,如果我单击图像应该在的那个地方,它就会被 clickListener 捕获。我做错了什么?
【问题讨论】:
-
您正在将任何
SVG转换为矢量? -
是的,我收到了 SVG 文件,然后将其导入为矢量可绘制对象。
-
尝试使用默认向量。在我的情况下,从 SVG 做也会出错。对于默认向量,无需您尝试上述所有内容,它就可以工作。
-
好的,我会尝试更新。关于为什么 SVG 给出错误而不是默认向量的任何想法?
-
我也是这个问题的受害者。 :D。对于 Gradle Plugin 2.0+ 和 Gradle Plugin 1.5,您需要添加 --> android { defaultConfig { generatedDensities = [] } // 这由 2.0+ Gradle Plugin aaptOptions { additionalParameters "--no-version-vectors 为您处理" } }
标签: android android-vectordrawable