2012-03-16 3 views
0

У нас есть требование, чтобы пользователь выбирал тему из 5 тем, и нам нужно установить выбранную тему для всех видов деятельности нашего приложения. Любая идея по этому поводу.Android: как применить тему к андроидному приложению

Цените свое время на этом.

Благодаря

+0

Более подробно определите, что вы подразумеваете под темой. Означает ли это тему в смысле полного экрана, без заголовка и т. Д. (Например, при создании макетов в Eclipse), или это означает нечто большее, чем цветовая схема? – gkiar

+0

У нас есть 5 фоновых изображений, основанных на выборе пользователя, нам нужно применить выбранное фоновое изображение ко всем действиям. – Kavi

ответ

0

создать класс сказать, тема менеджера объявить статические функции для каждого compont, который возвращает INT

говорят

public static int getTop() 
{ 

return R.Drawable.top1; 
} 

о деятельности просто позвоните

top.setBackGroundResource(thememanager.getTop()); 
0

То, как Я хотел бы это сделать следующим образом:

Шаг 1:

Создание общедоступного фиктивной переменной (для использования во всех ваших действий), и массив для таких тем, как это;

public Integer background; 
private Integer[] mImageIds = { 
    R.drawable.theme1, 
    R.drawable.theme2, 
    R.drawable.theme3, 
    R.drawable.theme4, 
    R.drawable.theme5, 
}; 

Шаг 2:

Пусть ваш метод выбора фона (список, кнопка, безотносительно) выберите элемент массива (0-4) и назначить его на фоне переменной;

position = 1; % ranging from 0-4 
background = mImageIds[position]; 

Шаг 3:

При загрузке каждого вида деятельности, установить фон, чтобы быть ваша переменная фон. (Способ, которым я собираюсь показать, как это сделать, - это обман, он применяется для того, чтобы быть содержимым изображения, которое охватывает экран).

ImageView iv = new ImageView(R.id.background-box); 
iv.setImageResource(background); 

Надеюсь, это поможет!

EDIT:

Другим способом вы могли бы достичь окончательного шаг настройки фона пустого текстовома быть вашим образом, как это;

TextView tv = new TextView(R.id.background-textbox); 
tv.setBackgroundResource(background); 
+0

Спасибо за ваш ответ. Я попробую это ... – Kavi

+0

Дайте мне знать, если это сработает для вас! :) – gkiar

+0

Вы никогда не возвращались ко мне, это работа для вас? Если да, выберите ответ. – gkiar

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