有没有办法从android:drawable以编程方式设置背景?

时间:2012-10-25 22:31:09

标签: java android background drawable

我知道这可以用xml这种方式完成

android:background="@android:drawable/editbox_dropdown_dark_frame"

上面的这一行是我的想法所以它可能会有一些错误,但基本上就是这样。现在我怎么能以编程方式做同样的事情呢?

由于

2 个答案:

答案 0 :(得分:4)

你可以这样做(来自View子类):

setBackgroundResource(android.R.drawable.editbox_dropdown_dark_frame);

如果您有对视图的引用(例如,来自findViewById),您可以执行相同的操作:

View v = . . .;
v.setBackgroundResource(android.R.drawable.editbox_dropdown_dark_frame);

如果您愿意,可以直接检索Drawable本身:

Drawable d = getResources().getDrawable(
    android.R.drawable.editbox_dropdown_dark_frame);

答案 1 :(得分:1)

<TextView
android:id="@+id/background_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

TextView toChange = (TextView) this.findViewById(R.id.background_tv);
toChange.setBackgroundResource(android.R.drawable.editbox_dropdown_dark_frame);