Изменить фон всего приложения - PullRequest
0 голосов
/ 04 мая 2018

Я хочу дать пользователям моего приложения возможность изменять фон всего приложения. Мое решение состоит в том, чтобы создать кнопку и в onclicklistener, я бы изменил фон каждого действия отдельно с setBackgroundResource.

Есть ли лучший способ сделать это? Или мой путь достаточно?

1 Ответ

0 голосов
/ 04 мая 2018

Поместите этот стиль в res> values> styles.xml

<style name="bgThemeDark" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowBackground">@drawable/bg1</item>
</style>    

и

<style name="bgThemeLight" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowBackground">@drawable/bg2</item>
</style>    

Измените @drawable/bg2 и @drawable/bg1 с вашим фоновым ресурсом.

Затем создайте BaseActivity в своем приложении, продлите всю активность на BaseActivity.

Затем напишите это в BaseActivity onCreate

boolean darkTheme = true;

public void onCreate(Bundle savedInstanceState) {
    setTheme(darkTheme ? R.style.bgThemeDark:R.style.bgThemeLight);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
}

Вы также можете установить это в манифесте, если не хотите менять тему во время выполнения.

<application
    android:theme="@style/CustomBackgroundTheme"

или

<activity
      android:name=".appClasses.activities.ActivityMain"
      android:theme="@style/CustomBackgroundTheme"
      >

Внимание: Не следует устанавливать фон для родительских узлов макета активности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...