2012-06-05 8 views
2

У меня есть приложение для Android с фоновым изображением. Моя цель - создать 3 или 4 фоновых изображения и дать возможность пользователю изменить фон.Android: сделать фоновое изображение меняющимся

На самом деле, у меня есть 4 изображения с именем bg1.png, bg2.png, bg3.png и bg4.png. Я думаю о чем-то, чтобы объявить строковое значение «background» в Strings.xml с именем изображения. Название фонового изображения всегда будет взято из фоновой строки, и когда пользователи изменят фон, этот wil изменит только значение фона строки.

Является ли эта идея хорошей или есть что-то проще? Как я могу установить фон моего макета в файле макета xml со значением «background» string? Шульд, я делаю это программно?

спасибо.

ответ

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

И когда начало деятельности, вы должны прочитать RESOURCEID из SharedPreference:

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

где DefaultValue это значение по умолчанию, если параметр не установлен , Предполагается, что вашLayout будет инициализирован (аналогично макету действий).

+0

Спасибо, Иване, я знаю это, но позвольте сказать, что у меня есть 20 видов деятельности, как я могу изменить базу для всех, когда пользователь устанавливает фоновое изображение. –

+0

Ana проверить мое редактирование. – Ivan

+0

Спасибо, Иван, и теперь, когда пользователь меняет фоновое изображение и выходит из приложения. Тогда он вернется, появится еще один раз старый фон, а не новый? –

Смежные вопросы