Я хочу определить цвет текста по умолчанию для моего приложения для Android.
У меня есть базовый класс активности, что все действия продлены от него, и я подумал, что это может быть хорошим местом для определения цветов.
Если это не лучшее решение? Может быть, стили?
Проблема в том, что все это для меня нова, поэтому не стесняйтесь советовать мне и предоставлять фрагменты кода и объяснения.
Вот как выглядит мой базовый класс. Как вы видите, это довольно пусто
package com.ccslocal.mobile.quiz.jls; import android.app.Activity; import android.os.Bundle; public class BaseActivity extends Activity { //set up app preferences here }
Да, вы правы, вы можете сделать это с помощью стиля. Или вы можете использовать TextView.getTextColors (). GetDefaultColor () для установки цвета текста по умолчанию. На самом деле я никогда не использовал это, но я думаю, что это может вам помочь.
Для стиля
<style name="TextColor"> <item name="android:textColor">#00FF00</item> </style>
Затем в файле макета
<TextView style="@style/TextColor" />
Как уже упоминалось в ответе Дениса.Солоненко, правильным подходом было бы изменение вашей темы.
Где вы определяете свою тему (в файле themes.xml или styles.xml), вам нужно добавить что-то вроде этого:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> ... <item name="android:textColor">#FF00FF</item> ... </style>
Затем убедитесь, что тема применяется к вашей Деятельности или Приложению в манифесте:
<application ... android:theme="@style/AppTheme" .... >
Вы также можете определить:
(Source TextColor vs TextColorPrimary vs TextColorSecondary )
Имейте в виду, что многие другие вещи могут переопределять эти предопределенные цвета, такие как применяемые стили или определения в разных папках ресурсов.
См. Полный список элементов темы: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml.
Создайте настраиваемую тему для своего приложения. Посмотрите на официальное руководство .
Задайте свой цвет по умолчанию в ваших res/values/colors.xml
как это
<color name="defaultTextColor">#ffffff</color>
Итак, этот цвет для всех ваших текстов
android:textColor="@color/defaultTextColor"
или
textView.setTextColor(R.color.defaultTextColor);