天天看点

Android中单选框RadioButton修改默认图片

1效果图:

Android中单选框RadioButton修改默认图片

2写一个选择器,里面是自己要设置的打开和关掉的按钮图标

selector_radio.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/radio_on" android:state_checked="true"></item>
    <item android:drawable="@mipmap/radio_off"></item>
</selector>
           

3RadioButton的重要属性

//屏蔽默认的按钮图标

android:button=”@null”

//设置自己在按钮图标

android:drawableLeft=”@drawable/selector_radio”

//图标的内边距是5

android:drawablePadding=”5dp”

//单选框是选中状态

android:checked=”true”

activity_main布局中的使用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical"
    >

    <RadioGroup
        android:id="@+id/rgLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <RadioButton
            android:id="@+id/rbShi"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="是"
            android:layout_gravity="center_vertical"
            android:gravity="center"
            android:layout_marginLeft="20dp"


            android:button="@null"
            android:drawableLeft="@drawable/selector_radio"
            android:drawablePadding="5dp"
            android:checked="true"

            />
        <RadioButton
            android:id="@+id/rbFou"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="否"
            android:layout_gravity="center_vertical"
            android:gravity="center"
            android:layout_marginLeft="20dp"

            android:drawablePadding="5dp"
            android:button="@null"
            android:drawableLeft="@drawable/selector_radio"
            />

    </RadioGroup>

</LinearLayout>
           

4上面3步,已经完成了修改默认图标

在MainActivity中判断是否选中和选中监听事件

package com.zhh.radiobutton;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import java.util.logging.Logger;


public class MainActivity extends Activity {
//  单选框外层布局
    private RadioGroup rgLayout;
//  是
    private RadioButton rbShi;
//  否
    private RadioButton rbFou;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rgLayout = findViewById(R.id.rgLayout);
        rbShi = findViewById(R.id.rbShi);
        rbFou = findViewById(R.id.rbFou);
        //      判断是否选中
        if(rbShi.isChecked()) {
            Log.e("111","选中状态");
        }
        //      监听选中的单选框
        rgLayout.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case  R.id.rbShi:
                        Log.e("111","是");

                        break;
                    case  R.id.rbFou:
                        Log.e("111","否");
                        break;
                }
            }
        });

    }


}
           

源码下载:

https://download.csdn.net/download/zhaihaohao1/10562472