如何从Xml文件动态设置TextView的背景

时间:2010-10-10 19:20:18

标签: android textview xml-drawable

我有一个像下面的xml文件,我将用它来设置Textview的背景:

row.xml

      <?xml version="1.0" encoding="utf-8"?>
      <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
      <gradient android:endColor="#CCCCCC" android:startColor="#CCCCCC"
      android:angle="270" />
      <stroke android:width="1dp" android:color="#999999" />
      <corners android:bottomRightRadius="0dp"
      android:bottomLeftRadius="0dp" android:topLeftRadius="0dp"
      android:topRightRadius="0dp" /></shape>

上面的Xml我将在main.xml中设置为TextView的背景,如下所示:

main.xml中

<TextView
android:id="@+id/rowtext3"
android:text="Availablity"
android:layout_height="25px"
android:layout_width="60px"
android:textSize="10px"
android:textStyle="bold"
android:textColor="@color/black"
android:gravity="center"
android:background="@drawable/row"
/>

但我希望这可以从代码而不是Xml。我已经完成了我在Xml中所做的一切,如字体,宽度,高度,字体动态通过代码,但不能设置我在Xml文件中提到的背景。我们如何将Xml文件的内容设置为textview的背景,类似于我们在main.xml中将背景设置为XML的方式。

在代码中,我这样做了:

    t1=new TextView(this); <br>
    t1.setText(ed1.getText()); <br>
    t1.setHeight(25); <br>
    t1.setWidth(60); <br>
    t1.setTextSize(10); <br>

但我没有找到如何设置背景,即如何将XML内容设置为背景?
任何人都可以帮我解决这个问题吗?
在此先感谢,

2 个答案:

答案 0 :(得分:7)

我认为您正在寻找的方法是setBackgroundDrawable(Drawable d)

这将使用给定的Drawable设置背景。所以它看起来像这样:

TextView t1 = (TextView) findViewById(R.id.rowtext3);
t1.setBackgroundDrawable(row);

答案 1 :(得分:0)

如果我理解正确,那么您正在寻找来自Activity类的findViewById(int id)。检索到视图后,可以使用setBackgroundResource(int id)设置背景。参数 id 可以在生成的R文件中找到,例如: findViewById(R.drawable.row)