2011-08-29 45 views
1

我需要一個邏輯,以編程方式更改xml背景,而不是從xml文件中提供背景顏色。這裏我使用了setContentView(R.layout.main);在應用程序中顯示xml文件。但我需要在java代碼中更改main.xml文件的背景顏色。如何動態更改android中的xml背景?

回答

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); 

它也可以可以使用十六進制代碼,如下圖所示設置顏色,

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

即使你可以設置drawable als O,

root.setBackgroundResource(R.drawable.bg_image); 
0

讓你的XML的根佈局的實例,並設置它的背景顏色從您的代碼,你想你想盡可能多的時間,但做這一切在你的UI thread ..

1

這裏是你如何能做到這一點,

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

這裏mLayout是你的父親RelativeLayout。

0

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

////////////////////////////////////////////// //////////// roundbordertry是xml文件。 newHeadView是LinearLayout中。