2012-06-05 114 views
2

我有一個帶有背景圖像的android應用程序。我的目標是創建3或4個背景圖像,併爲用戶提供更改背景的可能性。Android:使背景圖像可更改

其實我有4張圖片,分別是bg1.png,bg2.png,bg3.png和bg4.png。 我想過在Strings.xml中用圖像的名稱聲明一個字符串值「background」。背景圖像的名稱將從背景字符串中取出,並且當用戶改變背景時,這將僅改變字符串背景的值。

這個想法不錯,或者有東西嗎? 我怎樣才能在xml佈局文件中使用「背景」字符串的值設置我的佈局的背景?舒爾德,我做這個編程?

謝謝。

回答

2

,如果你想改變的背景,活動的佈局,我認爲,你可以做到這一點使用的setBackground方法的佈局,例如:

activityLayout = (LinearLayout)findViewById(R.id.tableLayout1); 
activityLayout.setBackgroundDrawable(getResources().getDrawable(R.id.somedrawable)) 

可以使用例如SharedPreference存儲的背景圖像,然後當您啓動活動時,您會閱讀包含背景的首選項。例如,當用戶選擇了背景:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", Context.MODE_PRIVATE); 
SharedPreferences.Editor prefsEditor = myPrefs.edit(); 
prefEditor.putInt("backgroudResourceId", userchoice); 
prefEditor.commit(); 

而當活動開始,你必須閱讀從SharedPreference的RESOURCEID:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", Context.MODE_PRIVATE); 
drawableid = myPrefs.getInt("backgroundResourceId", defaultvalue); 
yourlayout.setBackground(drawableid); 

,其中默認值是默認值,如果首選項沒有設置。應該初始化yourLayout(以與活動佈局相同的方式)。

+0

謝謝Ivane,我知道這一點,但讓我說我有20個活動,當用戶設置背景圖像時,如何更改它們的全部空間。 –

+0

安娜檢查我的編輯。 – Ivan

+0

謝謝Ivan,現在,當用戶更改背景圖片並退出應用程序時。然後他會回來,會再出現一次舊的背景,而不是新的背景? –