我想为我的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
}
答案 0 :(得分:74)
正如denis.solonenko的回答中所提到的,正确的方法是修改你的主题。
在您定义主题的位置(在themes.xml或styles.xml文件中),您将要添加如下内容:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
...
<item name="android:textColor">#FF00FF</item>
...
</style>
然后确保主题应用于清单中的活动或应用程序:
<application
...
android:theme="@style/AppTheme"
....
>
您还可以定义:
(来源TextColor vs TextColorPrimary vs TextColorSecondary)
请记住,许多其他内容可能会覆盖这些预定义的颜色,例如应用的样式或不同资源文件夹中的定义。
请点击此处查看主题项的完整列表:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml
答案 1 :(得分:18)
为您的应用创建自定义主题。看看official guide。
答案 2 :(得分:14)
是的,你是对的,你可以使用风格。或者,您可以使用 TextView.getTextColors()。getDefaultColor()来设置默认文本颜色。其实我从来没用过这个,但我觉得它可能对你有帮助。
对于风格
<style name="TextColor">
<item name="android:textColor">#00FF00</item>
</style>
然后在布局文件中
<TextView style="@style/TextColor" />
答案 3 :(得分:9)
在res/values/colors.xml
中设置您的默认颜色
<color name="defaultTextColor">#ffffff</color>
所有文字的颜色都是
android:textColor="@color/defaultTextColor"
或
textView.setTextColor(R.color.defaultTextColor);
答案 4 :(得分:2)
为TextView创建样式:
<style name="TextViewTheme">
<item name="android:textColor">@android:color/white</item>
</style>
以样式方式将其应用于App:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textViewStyle">@style/TextViewTheme</item>
</style>
并记得在AndroidManifest.xml中更改样式:
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
...
</application>