Так что я с нетерпением жду разработки приложения с темными / светлыми режимами, которые автоматически переключаются в зависимости от текущих настроек системы.
Я довольно легко сделал это приложение на iOS, поскольку они предоставили мне системные цвета (например, UIColor.systemGray, который я использовал чаще всего) и опцию для вещи, называемой активами изображения Dark / Свет / Any.
В основном эти активы в iOS делают, когда системный режим переключается (между темным / светлым), он автоматически переключается между изображениями, которые я помещаю для светлого или темного. Все это происходит без какого-либо внутреннего кода в моем ViewController.swift (это похоже на MainActivity. java в android).
То же самое относится и к цветам, и я мог бы даже кодировать WKWebView
(Webview для iOS), чтобы автоматически переключаться между двумя URL-адресами, которые я сделал, один с темным фоном и один со светлым (однако это было сделано требуется немного кодирования, но это было не так сложно).
Итак, я хочу знать, как сделать то же самое на Android, чтобы автоматизировать c переключение между изображениями (мой PRIORITY, пожалуйста, дайте мне подробную информацию для этого) и цвета для автоматического переключения , Я использую Java. Все, что я пробовал, - это создание двух разных макетов (activity_main. xml и activity_main_dark. xml) и наличие двух разных изображений для каждого изображения (1 черное и 1 белое). Я использовал следующий код для загрузки разных макетов
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
switch (currentNightMode) {
case Configuration.UI_MODE_NIGHT_NO:
setTheme(R.style.AppTheme);
setContentView(R.layout.activity_main);
.
.
.(my code)
.
.
break;
case Configuration.UI_MODE_NIGHT_YES:
setTheme(R.style.Night);
setContentView(R.layout.activity_main_dark);
.
.
.(my code)
.
.
break;
}}
Это сработало, но увеличило размер моего приложения, поскольку мне приходилось обрабатывать несколько ресурсов. Поэтому я ищу решение, подобное ios и Xcode. Надеюсь, скоро получу ответ