Я работаю над приложением для Android, которое должно поддерживать различные версии платформы в одном APK. В прошлом, хотя стиль немного менялся между выпусками Android, он не нарушал макеты.
С выходом Android 4.0 (Ice Cream Sandwich) системный стиль по умолчанию был значительно изменен, а прозрачный фон новых виджетов делает невозможным чтение текста в некоторых цветовых схемах:
Android 2.3.3
Android 4.0 (тот же APK)
Поскольку макет 4.0 имеет прозрачный фон, черный текст увидеть невозможно.
Есть ли простой способ справиться с этими изменениями стиля по умолчанию без создания пользовательских стилей для каждого базового виджета Android? или можно запросить более старую системную тему в Android 4.0? Я пытаюсь избежать определения версии системы и изменения цвета шрифта во время выполнения.
1 ответ
Ну старые темы есть. Вы настраиваете тему в приложении? Если нет, он перейдет к теме устройства по умолчанию.
Попробуйте явно указать тему, например Theme.Black, Theme.Light и т. д., для своей деятельности. Используйте темы в качестве базовой/родительской темы, а затем, если хотите, вы можете добавить свои определенные стили или переопределить некоторые значения по умолчанию.
Вы можете установить тему для активности в файле манифеста.
Больше опций:
Если вы хотите поддерживать тему Holo, сначала выберите один раз родительские темы для Holo и другой не-holo, а затем выберите соответствующую тему в коде через
if(Build.VERSION.SDK_INT > 10)
context.setTheme(<res_id_of_holo_them); // or dont any thing if default theme works for u
else
context.setTheme(<other_theme>);
Вызовите это перед setContentView
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.