我有简单的TextView
。我想设置带有圆角的简单彩色背景。
我尝试两种方法。
public static Drawable createRoundDrawable(int color, float radius) {
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setColor(color);
drawable.setCornerRadius(radius);
return drawable;
}
和
public static Drawable createRoundDrawable(int color, float radius) {
PaintDrawable drawable = new PaintDrawable(color);
drawable.setCornerRadius(radius);
return drawable;
}
我使用createRoundDrawable
方法创建可绘制对象,并将背景设置为textView,
textView.setBackground(background);
因此,背景应用于textView,但是角没有任何半径。为什么?以及如何解决?
答案 0 :(得分:0)
最好使用这样的带有圆角的可绘制XML文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<!-- you can use any color you want-->
<solid android:color="@color/colorPrimary" />
<corners android:radius="20dp" />
</shape>
然后将文件设置为可绘制
答案 1 :(得分:0)
删除
drawable.setShape(GradientDrawable.RECTANGLE);
应该是
public static Drawable createRoundDrawable(int color, float radius) {
GradientDrawable drawable = new GradientDrawable();
drawable.setColor(color);
drawable.setCornerRadius(radius);
return drawable;
}
答案 2 :(得分:0)
您可以尝试以下操作: 在drawable文件夹中创建一个新的Drawable资源文件,命名为custom_background.xml,其内容如下:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="15dp" />
<solid
android:color="#FFFFFF" />
</shape>
根据您的选择选择半径和颜色,并在textview的布局文件中添加背景标记 android:background =“ @ drawable / custom_background”
答案 3 :(得分:0)
尝试使用InterruptedException
将拐角设置为单个拐角
setCornerRadii()