如何动态更改android中的xml背景?

时间:2011-08-29 06:12:42

标签: android

我需要一个逻辑来以编程方式更改xml背景,而不是从xml文件中提供背景颜色。这里我使用了setContentView(R.layout.main);在应用程序中显示xml文件。但我需要在java代码中更改main.xml文件的背景颜色。

4 个答案:

答案 0 :(得分:10)

以下示例显示了如何制作它。在这里,我将LinearLayout作为xml文件的根节点。在java代码中我已经展示了如何设置白色背景。我认为这段代码可以帮到你。

xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
-----
-----
</LinearLayout>

java代码

LinearLayout root=(LinearLayout)findViewById(R.id.root);
root.setBackgroundColor(Color.WHITE);

也可以使用Hex代码设置颜色,如下所示,

root.setBackgroundColor(Color.parseColor("#ffffff"));

即使你也可以设置drawable,

root.setBackgroundResource(R.drawable.bg_image);

答案 1 :(得分:1)

以下是如何做到这一点,

 mLayout = (RelativeLayout) findViewById(R.id.myRelativeLayout);
 mLayout.setBackgroundColor(Color.BLUE);

此处mLayout是您的父亲RelativeLayout。

答案 2 :(得分:0)

获取xml的根布局实例,并根据需要随意设置代码的背景颜色,但在UI thread中完成所有这些..

答案 3 :(得分:0)

GradientDrawable sd =(GradientDrawable)this.getResources()。getDrawable(R.drawable.roundbordertry);  sd.setColor(Color.rgb(5,5,5)); newHeadView.setBackgroundDrawable(SD);

/////////////////////////////////////////////// /////////// roundbordertry是xml文件。 newHeadView是一个线性布局。