我正在使用 svg 作为图标,因为ImageView它可以使用app:srcCompat但当我想将它Buttons用作选择器时,应用程序崩溃,资源未找到异常,对于 api 低于 21 的设备
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_enabled" android:state_enabled="true" />
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)
其中 button_enabled 和 button_disabled 都是 svg
小智 5
我建议您按照以下步骤操作:-
第1步:
右键单击 drawable 文件夹 -> 选择 New -> 选择 Vaector Assests
第2步:
选择本地文件 svg 现在选择您的 svg 图像的路径单击下一步,您现在将在可绘制文件夹中拥有 svg 图像
对要在应用程序中使用的 svg 图像执行相同的操作
现在对选择器按钮使用以下代码selector_button.xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_check_circle" android:state_pressed="true" />
<item android:drawable="@drawable/ic_build" android:state_focused="true" />
<item android:drawable="@drawable/ic_build" />
</selector>
Run Code Online (Sandbox Code Playgroud)
我导入了两个 svg 1st ic_check_circle 和 2nd ic_build,您可以根据需要进行替换。
在您的 imageView 中使用下面的行
app:srcCompat="@drawable/selector_button"
Run Code Online (Sandbox Code Playgroud)
我有我自己问题的答案。在您的活动中,只需添加此静态块
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)