如何使用vector drawable(svg)作为android

时间:2017-02-07 10:19:00

标签: android checkbox vector radio-button

我正在使用带有自定义设计的Checkbox和单选按钮的矢量drawable(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是vector drawable,当我运行程序时,xml膨胀异常引发,当我删除两个组件中的android:按钮行时,它会关闭。所以,我怀疑的是,如何在这些组件中使用矢量drawable?

更新

我在app中添加了以下代码,矢量drawable完全适用于Imageview src添加。在app的帮助下:srcCompat =&#34; @ drawable / mic&#34;

 defaultConfig {
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    vectorDrawables.useSupportLibrary = true
}

1 个答案:

答案 0 :(得分:2)

这几天,#include<stdio.h> void main() { char str[50],com[50],val[50],id[50]; int value,idd,i=0,j=0; printf("Enter String :"); scanf("%[^\n]%*c", str); while(str[i]!=' ') { com[i]=str[i]; i++; } com[i]='\0'; i++; while(str[i]!=' ') { id[j]=str[i]; i++; j++; } id[j]='\0'; i++; j=0; while(str[i]!='\0') { val[j]=str[i]; i++; j++; } val[j]='\0'; value=atoi(val); idd=atoi(id); printf("%s %d %d",com,idd,value); } 上有一个属性app:buttonCompat,其作用与CompatCheckbox相同。它解决了我的问题,在Android 4.x上没有矢量按钮显示为复选框按钮。