androidstudio中的自定义按钮
创始人
2024-08-20 21:00:40
0

使用XML代码,自定义Button类和样式属性来实现自定义按钮。

首先,在XML布局文件中声明自定义Button类并设置样式属性,如下所示:


然后,在Java代码中实现自定义Button类,如下所示:

public class MyButton extends AppCompatButton {
    private int backgroundColor;
    private int textColor;
    private float cornerRadius;

    public MyButton(Context context) {
        super(context);
    }

    public MyButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context, attrs);
    }

    public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context, attrs);
    }

    private void init(Context context, AttributeSet attrs) {
        TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.MyButton);
        backgroundColor = ta.getColor(R.styleable.MyButton_backgroundColor, Color.BLUE);
        textColor = ta.getColor(R.styleable.MyButton_textColor, Color.WHITE);
        cornerRadius = ta.getDimension(R.styleable.MyButton_cornerRadius, 0);
        ta.recycle();

        setBackgroundColor(backgroundColor);
        setTextColor(textColor);
        setCornerRadius(cornerRadius);
    }

    public void setCornerRadius(float cornerRadius) {
        this.cornerRadius = cornerRadius;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            setElevation(4);
        }
        GradientDrawable shape = new GradientDrawable();
        shape.setCornerRadius(cornerRadius);
        shape.setColor(backgroundColor);
        setBackground(shape);
    }
}

最后,在styles.xml中声明自定义样式属性,如下所示:


这样,在布局文件中使用MyButton类即可自定义按钮。

相关内容

热门资讯

透视神器!pokemmo手机版... 透视神器!pokemmo手机版修改器,淘宝的微乐辅助是真的吗,解密脚本(有挂猫腻)-哔哩哔哩在进入p...
脚本解迷!德扑HHpoker有... 脚本解迷!德扑HHpoker有挂吗,hhpoker免费辅助器(透视)竟然是有攻略(哔哩哔哩)1)辅助...
透视透视挂!we poker游... 透视透视挂!we poker游戏下,微乐家乡小程序辅助,关于脚本(有人有挂)-哔哩哔哩we poke...
脚本曝光!wepoker透视底... 脚本曝光!wepoker透视底牌脚本,wejoker开挂(透视)都是真的是有插件(哔哩哔哩)1、玩家...
更值得关注的是!wepoker... 您好,wepoker透视脚本网页这款游戏可以开挂的,确实是有挂的,需要了解加去威信【48527505...
脚本有挂!wepoker破解是... 脚本有挂!wepoker破解是真的还是假的,wepoker破解器(透视)竟然是有器(哔哩哔哩)1、模...
透视有挂!pokemmo辅助脚... 透视有挂!pokemmo辅助脚本,微信小程序微乐房间的挂多少钱,详情透视(有挂辅助)-哔哩哔哩pok...
透视必备!wepoker透视底... 透视必备!wepoker透视底牌脚本,wepoker私人辅助器(透视)其实存在有器(哔哩哔哩)1、许...
今年以来!大菠萝免费辅助器,微... 今年以来!大菠萝免费辅助器,微信小程序微乐辅助器,科普脚本(有挂功能)-哔哩哔哩大菠萝免费辅助器透视...
透视安装!newpoker脚本... 透视安装!newpoker脚本,手机微乐小程序游戏破解器,分享透视(有挂猫腻)-哔哩哔哩newpok...