2012-03-15 98 views
1

更改線性佈局的背景圖像通過我這個代碼改變線性佈局背景圖片:上的活動啓動

mainlayout.setBackgroundResource(R.drawable.back); 

但我想這樣做的每一個活動開始,在第一次啓動和活動之間的切換時間。我把這段代碼放在onCreate()中的IF語句中,但是背景沒有改變!當然,當我將此代碼設置爲一個按鈕時效果很好!如何和在哪裏我必須把我的代碼?

我的完整代碼:

  //check theme id 
    if(myDbHelper.gettheme()==1) 
    { 
     mainlayout.setBackgroundResource(R.drawable.back); 
    }else if(myDbHelper.gettheme()==2) 
    { 
     mainlayout.setBackgroundResource(R.drawable.blueback); 
    } 

回答

1

編輯:你確定的主題是1或2?

如果你想每次都這樣做,爲什麼不直接在layout.xml中將它定義爲mainLayout的背景?否則,使用onResume()而不是onCreate()。

+0

不清楚,將工作,因爲在運行時檢查主題以確定使用什麼背景,暗示用戶可能能夠在運行時更改。 – 2012-03-15 20:22:14

+0

是的......他在我回答後添加了代碼。 – 2012-03-15 20:26:36

1

我假設基於你的代碼片段,你有你想要的圖像作爲背景作爲已經在項目中的可繪製資源。如果是這樣,你可能只是進入XML,並添加到linerayout:

android:background="@drawable/back" 

這應該只是設置避免了必須有代碼XML佈局內背景的活性生命週期的功能之一中設置它。

雖然在這種情況下,您想要在原始文章中看到不同的主題(似乎在編輯完成後編輯),但您可以嘗試存儲用戶想要的R.drawable的常量int背景或主題,並讓您的DB Helper的getTheme()返回該引用以設置沒有if語句的背景。

這樣說的用戶將其偏好改變爲R.drawable.black或.blueback在數據庫中存儲int,所以它通過gettheme返回,而不是1或2枚舉。不知道這是否是最佳做法。