美文网首页程序员
android 自定义 Checkbox图标样式 修改大小

android 自定义 Checkbox图标样式 修改大小

作者: 天堂守望者 | 来源:发表于2019-11-28 09:03 被阅读0次

在网上查询了好多的方法 都是设置 style 什么的 只改变了 图标的样式 没有改变大小

然后我就去看了一下源码 checkbox 继承 CompoundButton CompoundButton继承了TextView

我就想能不能把checkbox的选中图标 设置成drawableLeft

然后试了 一下 成功了 下面献上代码 请各位大佬 指正

如果帮你解决了问题 要记得点赞哦😊

1 先自定义 属性

<declare-styleable name="MyCheckBox">

    <attr name="android:button" />

    <attr name="attr_drawableWidth" format="dimension" />

    <attr name="attr_drawableHight" format="dimension" />

</declare-styleable>

2 然后重写 CheckBox

public class MyCheckBox extends AppCompatCheckBox {

    private int drawbleW;

    private int drawbleH;

    public MyCheckBox(Context context) {

        this(context, null);

}

    public MyCheckBox(Context context, AttributeSet attrs) {

        super(context, attrs);

        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyCheckBox);

        Drawable drawable = array.getDrawable(R.styleable.MyCheckBox_android_button);

        drawbleW = (int) array.getDimension(R.styleable.MyCheckBox_attr_drawableWidth, 40);

        drawbleH = (int) array.getDimension(R.styleable.MyCheckBox_attr_drawableHight, 40);

        setCompoundDrawablePadding(4);

        setButtonDrawable(drawable);

}

    @Override

    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);

}

    public MyCheckBox(Context context, AttributeSet attrs, int defStyleAttr) {

        super(context, attrs, defStyleAttr);

}

    @Override

    public void setButtonDrawable(int resId) {

        setButtonDrawable(AppCompatResources.getDrawable(getContext(), resId));

}

    //一定要在设置 Drawable 之前设置 否者不生效

    public void setDrawbleSize(int drawbleW, int drawbleH) {

        this.drawbleW = drawbleW;

        this.drawbleH = drawbleH;

}

    @Override

    public void setButtonDrawable(Drawable buttonDrawable) {

        if (buttonDrawable != null) {

            buttonDrawable.setBounds(0, 0, drawbleW, drawbleH);

            setCompoundDrawables(buttonDrawable, null, null, null);

}

}

}

相关文章

网友评论

    本文标题:android 自定义 Checkbox图标样式 修改大小

    本文链接:https://www.haomeiwen.com/subject/rusvwctx.html