可设RadioButton图片的大小

来源:互联网 发布:全景补地软件 编辑:程序博客网 时间:2024/06/07 11:34
import android.content.Context;import android.content.res.TypedArray;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.RadioButton;import info.mixun.cate.catephoneclient.R;/** * Created by Administrator on 2017/9/30. */public class MyRadioButton extends RadioButton {    private int with, height;    public MyRadioButton(Context context) {        this(context, null);    }    public MyRadioButton(Context context, AttributeSet attrs) {        this(context, attrs, 0);    }    public MyRadioButton(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyRadioButton);        with = a.getDimensionPixelOffset(R.styleable.MyRadioButton_drawable_with, 0);        height = a.getDimensionPixelOffset(R.styleable.MyRadioButton_drawable_height, 0);        Drawable drawableTop = a.getDrawable(R.styleable.MyRadioButton_android_drawableTop);        Drawable drawableLeft = a.getDrawable(R.styleable.MyRadioButton_android_drawableStart);        Drawable drawableBottom = a.getDrawable(R.styleable.MyRadioButton_android_drawableBottom);        Drawable drawableRight = a.getDrawable(R.styleable.MyRadioButton_android_drawableEnd);        //释放资源        a.recycle();        setCompoundDrawablesWithIntrinsicBounds(drawableLeft, drawableTop, drawableRight, drawableBottom);    }    @Override    public void setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom) {        super.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);        if (top != null)            top.setBounds(0, 0, with, height);        if(left!=null)            left.setBounds(0,0,with,height);        if(right!=null)            right.setBounds(0,0,with,height);        if(bottom!=null)            bottom.setBounds(0,0,with,height);        setCompoundDrawables(left, top, right, bottom);    }}
<declare-styleable name="MyRadioButton" parent="RadioButton">    <attr name="drawable_with" format="dimension"/>    <attr name="drawable_height" format="dimension"/>    <attr name="android:drawableTop"/>    <attr name="android:drawableStart"/>    <attr name="android:drawableEnd"/>    <attr name="android:drawableBottom"/></declare-styleable>

原创粉丝点击