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

1效果图:
这里写图片描述
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

猜你喜欢

转载自blog.csdn.net/zhaihaohao1/article/details/81197294