我正在使用矢量可绘制(svg)文件作为具有自定义设计的复选框和单选按钮。我无法在这些组件上设置按钮。
<CheckBox android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/checkbox_button_bg"
android:checked="true"
android:padding="@dimen/min_padding"
android:layout_margin="@dimen/min_margin"
android:text="Do you need recurring" />
<RadioButton android:id="@+id/rdbtnNever"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/most_min_padding"
android:button="@drawable/radio_button_bg"
android:text="Never"/>
可绘制/radio_button_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/radio_btn_select"
android:state_checked="true"
android:state_pressed="true" />
<item
android:drawable="@drawable/radio_btn_select"
android:state_pressed="true" />
<item
android:drawable="@drawable/radio_btn_select"
android:state_checked="true" />
<item
android:drawable="@drawable/radio_btn_unselect" />
</selector>
这里radio_btn_select和radio_btn_unselect是矢量可绘制的
我已经完成了如下所示的复选框。
checkbox_button_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/checkbox_check"
android:state_checked="true"
android:state_pressed="true" />
<item
android:drawable="@drawable/checkbox_check"
android:state_pressed="true" />
<item
android:drawable="@drawable/checkbox_check"
android:state_checked="true" />
</selector>
这里 checkbox_check 是当我运行程序时可绘制的矢量,引发 xml 膨胀异常,当我删除两个组件中的 android:button 行时,它会消失。所以,我的疑问是,如何在这些组件中使用矢量绘图?
更新
我在应用程序和矢量绘图中添加了以下代码,对于 Imageview src 添加来说完全可以正常工作。在 app:srcCompat="@drawable/mic"的帮助下
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
}
最佳答案
如今,CompatCheckbox
上有一个属性 app:buttonCompat
,其工作方式与 app:srcCompat
相同。它解决了我的问题,在 Android 4.x 上没有矢量按钮显示为复选框按钮。
关于android - 如何在android中使用矢量drawable(svg)作为复选框和单选按钮上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42087225/