Android - як встановити колір тла всіх екранів?


78

Яка найкраща практика підтримувати стилі шрифтів та кольорів. Я створив файл colors.xml, який використовував для зміни кольорів на окремих елементах, таких як кнопки, але я не впевнений, як Android хоче, щоб розробники організовували свої стилі.

Наприклад, я хотів би, щоб усі екрани мали однаковий колір фону. Як це зробити? Це щось мені потрібно вказати для кожного макета Activity xml? Або деінде? Як мені це зробити?


ви створюєте стилі та застосовуєте їх до своїх елементів інтерфейсу користувача
zapl

@zapl встановив, чим я займався. Мені цікаво було, як застосувати стиль до всього екрану. Як колір тла для кожного екрана?
GeekedOut

Ви можете застосувати фонову тему до кожного найвищого LinearLayout (або будь-якого іншого, що ви використовуєте), або ви можете зробити це за допомогою теми для своєї діяльності
zapl

@zapl о так, це допомагає! Дякую!
GeekedOut

Відповіді:


196

Швидкий і простий спосіб переконатись, що кожна діяльність має однаковий колір тла - це створити тему для ваших занять. У цій темі буде вказано android: windowBackground.

Спочатку визначте колір у значенні / colors.xml

<resources>
    <color name="background">#FF0000 </color>
</resources>

Створіть файл themes.xml у res / values, який посилається на цей колір:

<resources>
 <style name="MyTheme" parent="@android:style/Theme.Light"> 
  <item name="android:windowBackground">@color/background</item>
 </style>
</resources>

... а потім у вашому AndroidManifest.xml вкажіть це як тему для ваших дій, які потрібно використовувати.

 <activity
        android:name=".MyActivity"
        android:theme="@style/MyTheme" />

4
Я отримав помилку під час реалізації цього коду в themes.xml, оскільки він не розпізнає шістнадцятковий код кольору тут: <item name = "android: windowBackground"> ​​# FF0000 </item>
Брайан Дж.

9
просто помістіть шістнадцятковий колір у ресурс @color, а потім посилайтеся на нього таким чином <item name = "android: windowBackground"> ​​@ color / my_background </item>
Chris.D

2
це не правильна відповідь. будь ласка, виправте свою відповідь відповідно до коментаря Кріса NPike
Joris Weimar

styles.xmlНатомість відредагуйте стиль .
Якуб Блага

windowBackground не впливає. Я думаю, що цей прапор призначений лише для встановлення / зміни малюнків, а не кольорів!
дуді

20

Оновіть свою андроїд-студію до версії 1.4, вона має вбудований редактор тем. як ви можете бачити на зображенні нижче

введіть тут опис зображення


2
як відкрити Theme Editir у попередній версії android 2.1
Sonu Kumar

відкрийте файл styles.xml, і ви побачите, як відкрито в тексті редактора у верхньому правому куті клацніть на ньому.
кундан рой

Але мій випадок приховати і вирішити проблему при перезапуску андроїд-студії, дякую, показати Маха
Сону Кумар

1
Щоб відкрити його, перейдіть до Інструменти -> Android -> Редактор тем.
Альберт Віла Кальво,

3
Редактор не підтримується. З Android Studio 3.3 він видалений.
finder2

8

Ви також можете встановити фон на рівні програми в AndroidManifest.xml

<application
   ...
   android:theme="@style/MyTheme">

(Примітка: Я не можу це зробити як коментар прийнятої відповіді, оскільки моя репутація занадто низька).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.