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

在网上查询了好多的方法 都是设置 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);

}

}

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容