我的应用程序中有一个按钮,我在其中设置它的背景: setBackground(Drawable background)
然后我使用 setText(CharSequence,TextView.BufferType) 在底部显示文本。
现在的问题是我试图在文本上加上圆形背景。我正在查看按钮的 android 文档,但找不到任何有用的功能来为按钮的文本放置背景。
我正在尝试获得黄色部分。任何帮助/建议将不胜感激。谢谢!
编辑:要清楚红色形状是按钮本身。黄色的形状是我想要的按钮文本周围的背景。
我的应用程序中有一个按钮,我在其中设置它的背景: setBackground(Drawable background)
然后我使用 setText(CharSequence,TextView.BufferType) 在底部显示文本。
现在的问题是我试图在文本上加上圆形背景。我正在查看按钮的 android 文档,但找不到任何有用的功能来为按钮的文本放置背景。
我正在尝试获得黄色部分。任何帮助/建议将不胜感激。谢谢!
编辑:要清楚红色形状是按钮本身。黄色的形状是我想要的按钮文本周围的背景。
您可以将XML其用作按钮的自定义背景,以根据需要为其提供样式,例如
round_button_file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#6F2500"/>
<stroke android:width="2sp" android:color="#fff" />
然后将按钮的背景设置为该 XML 文件
code for button
<Button
android:layout_width="30sp"
android:layout_height="30sp"
android:background="@drawable/round_button_file"
android:gravity="center_vertical|center_horizontal"
android:text="Text"
android:textColor="#fff" />
希望我有所帮助。
尝试这个:
椭圆背景.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="#FFFF00"/>
</shape>
椭圆文本.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_margin="10dp"
android:gravity="center_vertical|center_horizontal"
android:background="@drawable/oval_background"
android:text="TEXT"/>
</LinearLayout>
我知道这是一篇旧帖子,但我认为它在这里很有帮助。不要使用可绘制对象,而是尝试扩展按钮并在画布上绘制椭圆。
开始:
public class YourButton extends Button {
//declare needed variables
private Context context;
private Paint ovalPaint;
public YourButton(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
private void init(Context context) {
this.context = context;
ovalPaint = new Paint();
ovalPaint.setAntiAlias(true);
ovalPaint.setStyle(Paint.Style.FILL);
ovalPaint.setColor(context.getResources().getColor(R.color.YOUR_RED_COLOR);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawOval(getOval(canvas), ovalPaint);
super.onDraw(canvas); //important
}
private RectF getOval(Canvas canvas) {
int offset = (int)(canvas.getWidth() * .05);
return new RectF(0 + offset, 0 + offset, canvas.getWidth() - offset, canvas.getHeight() - offset);
}
}
并将您的 xml 文件设置如下:
<YourButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Text"
android:textSize="30sp"
android:textColor="#fff" />