我的布局中有很多TextView,我想用不同的颜色边框。 我知道您可以使用
在TextView周围创建边框<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border"/>
您的border.xml如下所示
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<stroke
android:width="3dp"
android:color="#FF0000" />
</shape>
但我有8-9种不同的TextView,我想用8-9种不同的边框颜色边框。 我有没有办法在不创建8-9 differert borderColor.xml(borderPink.xml,borderBlue.xml等)文件的情况下做到这一点?
答案 0 :(得分:1)
你可以动态地使用GradientDrawable
并在textVew中设置它。
有两种方法,你可以在你的代码上定义你的drawable(使用你自己的属性),如下所示:
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setStroke(5, Color.MAGENTA);
此外,您可以从border.xml获取资源。
Resources res = this.getResources();
GradientDrawable drawable = (GradientDrawable)res.getDrawable(R.drawable.border);
之后,将其设置为textView。
textView.setBackgroundDrawable(drawable);
答案 1 :(得分:0)
只需在xml中尝试,
<?xml version="1.0" encoding="UTF-8"?>
<stroke
android:width="2dp"
android:color="#6bb03e" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />