gpt4 book ai didi

android - 带圆角和带颜色边框的按钮

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:40 27 4
gpt4 key购买 nike

我需要你的帮助来做一些我想做的事情,我一直在尝试制作一个带圆角的按钮并只显示它的边框,我需要能够根据我从中得到的内容以编程方式更改颜色一个网络服务,到目前为止,我尝试添加带有可绘制对象的形状,它给出了带有边框颜色的圆形,但我不知道是否可以更改它的颜色,因为它默认添加在可绘制对象中

<?xml version="1.0" encoding="UTF-8"?>

<stroke android:width="3dp"
android:color="#ff000000"
/>

<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"
/>

<corners android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp"/>

那是我使用的可绘制对象,然后我尝试添加形状,为按钮创建自定义类并更改 onDraw 方法,我得到了一个形状,但有点奇怪

Rounded shape

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub

Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(strokeColor);
paint.setStrokeWidth(5.0f);

int h = this.getHeight();
int w = this.getWidth();
//final RectF rect = new RectF();

RectF oval1 = new RectF(0, 0, w, h);
canvas.drawRoundRect(oval1, 40, 40, paint);

}

并且出于某种原因,除了奇怪的形状之外,我使用 set text 方法以编程方式添加文本并且它没有显示,它获取笔划的颜色而不是文本

buttonCTA = ButterKnife.findById(this, R.id.btnCTA);
buttonCTA.setTextColor(Color.parseColor(valueColor));
buttonCTA.setStrokeColor(valueColor);
buttonCTA.setText("test");

最佳答案

在 drawable 文件夹中创建 round_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="3dp"
android:color="#ff000000" />

<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />

<corners
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp" />
</shape>

设置为背景

 <Button
android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/round_background"
android:text="Hello World!" />

在运行时使用任何 View 更改它。

 Button button = (Button) findViewById(R.id.mybutton);
GradientDrawable drawable = (GradientDrawable)button.getBackground();
drawable.setStroke(2, Color.YELLOW);

关于android - 带圆角和带颜色边框的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41614678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com