2011-12-22 4 views
3

В моем приложении я хочу использовать тему для конкретного макета при нажатии кнопки. Когда пользователь нажимает первую кнопку, тема должна быть черной для этого макета, и все представления в этом макете должны быть изменены по теме.Как изменить тему конкретного макета в Android?

ответ

0

Я надеюсь, что это поможет ...

Я хотел бы сказать вам, что вы должны держать все фоновые цвета для виджетов прозрачных первых. Так что вам просто нужно изменить фон LinearLayout или RelativeLayout.

Используйте этот ...

android:background="@android:color/transparent" 

Предположим, у вас есть нормальная тема и RelativeLayout (ID = mainBase) кнопка переписывались "ColorChanger" (ID = colBtn), а также TextView, имеющий текст «Change My Цвет "(id = текст).

И вы хотите изменить фон, а также цвет текста.

В вашем OnCreate метод, написать это:

final RelativeLayout base = (RelativeLayout) findViewById(R.id.mainBase); 
final TextView txt = (TextView) fidViewbyId(R.id.text); 

colBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mainBase.setBackgroundColor(getResources().getColor(R.color.<ColorName>)); 
      text.setTextColor(getResources().getColor(R.color.<ColorName>)); 
     } 
    }); 

Таким образом, при нажатии на кнопку, цвет фона изменения цвета текста RelativeLayout и TextView и, похоже, вся тема была изменена.

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