首页
JAVA笔记
数据库笔记
混乱记忆
小站记
您现在的位置
android 只需一步就去掉 radio 或 checkBox 的默认图标
简介: android 开发过程只需要一个稍微修改一下xml配置即可去掉 RadioButton 的默认圆圈和checkBox 的默认方块。

应用场景,某些情况下可能并不需要显示 RadioButton  的默认小圆圈,而显示自己的图标,其实只需要一个步骤即可去掉。

下面的demo 是以 radio 例举的,checkBox 和它完全可以使用相同的方法就可以取消掉默认的小方块

 

drawable目录中创建 radio_selector.xml 文件内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/radio_selected_shape" android:state_checked="true" android:state_enabled="true"/>
    <item android:drawable="@drawable/radio_unselected_shape" android:state_checked="false" android:state_enabled="true"/>

</selector>

 

drawable目录中创建  radio_selected_shape.xml 文件内容:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="3dp" />
    <solid android:color="#330000" />
 <size android:width="30dp"  android:height="30dp"/>
</shape>

layout 目录中创建 radio_button_custom.xml 文件内容

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/radio_selector"
        android:button="@null" />

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/radio_selector"
            android:button="@null" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/radio_selector"
            android:button="@null" />
    </RadioGroup>
  <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/radio_selector"
            android:text="左边"
            android:button="@null" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/radio_selector"
            android:text="右边"
            android:button="@null" />
    </RadioGroup>
</LinearLayout>

 

创建 activity 类 RadioButtonActivity 的内容

import android.app.Activity;
import android.os.Bundle;

public class RadioButtonActivity extends Activity{

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.radio_button_custom);
 }

 
}

 

其实主要需要注意的点是设置 layout 文件中 RadioButton 的属性 android:button="@null"

 

 radioButton 由java代码创建时

RadioButton button = new RadioButton(context);
button.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT));