第二种:自定义一个MyRadioButton。原理跟第一种是一样的,直接上代码吧。 第一步:在attrs文件夹下面定义一个图片引用的属性 ? ? ? ? ? ? ? ? 第二步:定义一个MyRadioButton类,继承原生的RadioButton public class MyRadioButton extends RadioButton { private Drawable drawable; public MyRadioButton(Context context) { super(context); } public MyRadioButton(Context context, AttributeSet attrs) { super(context, attrs); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyRadioButton);//获取我们定义的属性 drawable = typedArray.getDrawable(R.styleable.MyRadioButton_drawableTop); drawable.setBounds(0, 0, 60, 60); setCompoundDrawables(null, drawable, null, null); } } 第三步:xml中使用它: 运行:完美! 需要主意的是:要是在RadioGroup中默认选中第几个,但是点击后不互斥,这是因为没有给RadioButton写id。 另一种: private void initView(){ Drawable drawable_news = getResources().getDrawable(R.drawable.selector_home_rbtn_news); //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形 drawable_news.setBounds(0, 0, 50, 50); //设置图片在文字的哪个方向 rbtn_News.setCompoundDrawables(null, drawable_news, null, null); // 定义底部标签图片大小和位置 Drawable drawable_live = getResources().getDrawable(R.drawable.selector_home_rbtn_live); //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形 drawable_live.setBounds(0, 0, 50, 50); //设置图片在文字的哪个方向 rbtn_Live.setCompoundDrawables(null, drawable_live, null, null); //定义底部标签图片大小和位置 Drawable drawable_tuijian = getResources().getDrawable(R.drawable.selector_home_rbtn_tuijian); //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形 drawable_tuijian.setBounds(0, 0, 50, 50); //设置图片在文字的哪个方向 rbtn_Tuijian.setCompoundDrawables(null, drawable_tuijian, null, null); //定义底部标签图片大小和位置 Drawable drawable_me = getResources().getDrawable(R.drawable.selector_home_rbtn_me); //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形 drawable_me.setBounds(0, 0, 50, 50); //设置图片在文字的哪个方向 rbtn_Me.setCompoundDrawables(null, drawable_me, null, null); }