在按钮的android选择器中使用SVG

Vis*_*kar 6 svg android

我正在使用 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步:

从本地文件夹中选择 svg

右键单击 drawable 文件夹 -> 选择 New -> 选择 V​​aector 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)


Vis*_*kar 5

我有我自己问题的答案。在您的活动中,只需添加此静态块

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)