如何在Android中以编程方式设置按钮边框颜色?

new9mtju  于 2023-01-19  发布在  Android
关注(0)|答案(3)|浏览(127)

我想有一个按钮在Android的按钮边框不同的颜色。

Button Bt = new Button(this);
        Bt.setId(i+1);
        Bt.setBackgroundColor(getResources().getColor(R.color.white)) ;
        Bt.setText(restList.get(i));
        Bt.setLayoutParams(params3);
        Bt.setTextColor(Color.parseColor("gray"));
        layout.addView(Bt);

我如何通过编程来实现这一点?

y1aodyip

y1aodyip1#

yourButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ShapeDrawable shapedrawable = new ShapeDrawable();
                shapedrawable.setShape(new RectShape());
                shapedrawable.getPaint().setColor(Color.RED);
                shapedrawable.getPaint().setStrokeWidth(10f);
                shapedrawable.getPaint().setStyle(Style.STROKE);     
                yourButton.setBackground(shapedrawable);
            }
        });

试试这个,但我不是100%肯定

mwg9r5ms

mwg9r5ms2#

您可以为此创建一个布局。在您的代码中:
your_button.setBackgroundResource(R.drawable.your_layout);
your_layout - XML文件,例如:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <padding android:left="10dp"
        android:right="10dp"
        android:top="10dp"
        android:bottom="10dp"/>
    <stroke
        android:width="1dp"
        android:color="@color/colorPrimary" />
</shape>`
dgsult0t

dgsult0t3#

使用方法setStrokeColor()setStrokeWidth()附带的MaterialButton,它比创建可绘制对象更容易

相关问题