2014-09-20 23 views
1

這一個12小時debugging..help我..的Android setBackgroundDrawable不工作

RES /繪製

main_img1.png 
    main_img2.png 

XML

android:background="@drawable/main_img1" 

會員

RelativeLayout relativelayout; 

的OnCreate

relativelayout = new RelativeLayout(this); 
    relativelayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.main_img2)); 
    relativelayout.invalidate(); 

圖像不改變 setBackgroundDrawable不工作 沒有錯誤沒有紅線

不能使用ImageView的,
動態改變佈局的背景下,處理

請分享您的知識

回答

1

您需要讓RelativeLayout知道您要引用的資源:

XML

android:id="@+id/your_layout" 
android:background="@drawable/main_img1" 

的OnCreate

relativelayout = new RelativeLayout(this); 
relativelayout = (RelativeLayout)findViewById(R.id.your_layout) 
+0

ID沒有被定義爲xml文件 – Andromer 2014-09-20 05:34:45

+0

謝謝你的好意 – Andromer 2014-09-20 05:35:08

0

我認爲問題是,你的繪製丟失其固有界限。所以,而不是setBackgroundDrawable,使用setBackgroundResource並讓視圖自動調整邊界。

例如

relativelayout.setBackgroundResource(R.drawable.main_img2); 
0

請試試這個:

XML:

android:background="@drawable/main_img1" 

的OnCreate

RelativeLayout relativelayout; 
relativelayout = (RelativeLayout)findViewById(R.id.your_layout) 
    relativelayout.setBackgroudResource(null); 
    relativelayout.setBackgroundResource(R.drawable.main_img2); 

希望其對你有用。

+0

謝謝你的好意,@dipali你的好意,我睡今晚 – Andromer 2014-09-20 05:36:50

+0

setBackgroudResource需要一個int,不能設置爲null – 2016-12-19 11:35:53

0

這樣做;

XML:

 <RelativeLayout> 
      android:id="@+id/rel_layout" 
      android:background"@drawable/main_img1" 
     </RelativeLayout> 

的Java:

 RelativeLayut rel_layout=(RelativeLayout)findviewbyId(R.id.rel_layout); 
     rel_layout.setBackgroundResource(R.drawable.main_img2); 
+0

感謝您的好意。@ Balvinder Singh!你的善良,我今晚睡 – Andromer 2014-09-20 05:37:19

0

方法setBackgroundDrawable已被棄用。而是使用

setBackgroundResource(getResources().getDrawable(R.drawable.main_img2)); 

還可以獲得關於你的佈局從XML如下

relativelayout = (RelativeLayout)findViewById(R.id.your_layout);