如何制作一个可以配置颜色的border.xml文件?

时间:2015-04-23 06:35:11

标签: android xml android-layout

我的布局中有很多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等)文件的情况下做到这一点?

2 个答案:

答案 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" />