android theme中的各个color的含义
2019-05-09 本文已影响5人
宛丘之上兮
今天测试了下colorPrimary
、colorPrimaryDark
、colorAccent
、android:textColorPrimary
、android:windowBackground
这五个颜色的含义。Activity页面代码:
public class Test2AC extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_test2);
Toolbar toolbar = findViewById(R.id.toolbar);
toolbar.setTitle(R.string.app_name);
}
}
在androidmanifest中注册:
<activity
android:name=".activity.Test2AC"
android:screenOrientation="portrait"
android:theme="@style/AppBaseThemeF">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
所使用的Theme样式:
<style name="AppBaseThemeF" 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:textColorPrimary">@color/textColorPrimary</item>
<item name="android:windowBackground">@color/windowbg</item>
</style>
每个颜色值如图:
页面布局:R.layout.ac_test2
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:background="@color/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:layout_height="wrap_content">
</android.support.v7.widget.Toolbar>
<EditText
android:layout_width="match_parent"
android:height="60dp"
android:text="FFFFFFFFFFFFFFFFffff"
android:layout_height="wrap_content"/>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</android.support.design.widget.FloatingActionButton>
<RadioGroup
android:layout_width="wrap_content"
android:orientation="horizontal"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RadioGroup>
</LinearLayout>
最终效果图:
由于页面Activity是根Activity,系统会自带一个ToolBar。上面的ToolBar的title颜色是白色的,而下面的ToolBar的title颜色是colorAccent定义的颜色,上面的ToolBar是系统的,如果使用样式Theme.AppCompat.Light.DarkActionBar
,那么title颜色就是白色,如果使用样式Theme.AppCompat.Light
,那么title颜色就是colorAccent定义的颜色。
如果不调用getWindow().setStatusBarColor(int color);
方法的话,那么状态栏的颜色就是colorPrimaryDark
定义的颜色。
当然还有其他很多的颜色,没有一一实验,大致总结下:
-
navigationBarColor
:导航栏颜色 -
colorControlNormal
:组件的默认颜色 (比如CheckBox, RadioButton). -
colorBackground
:页面或者组件的背景颜色(比如 activity背景色) -
colorForeground
:前景色 -
textColorLink
:links/href的颜色 -
android:textColorHint
:提示颜色 -
android:textColorSecondary
:图片标题或者字幕、Medium、action bar subtitle等。 -
textColorTertiary
:不经常用,按字面意思是第三级颜色,参照第二级颜色textColorSecondary
color大全可以参考文献2.
参考: