android5.0新特性,需要我们在Style中的每个itme中设置,具体设置如下图:
对应在资源文件中的Styles可以做如下设置:
?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="android:Theme.Material.Light">
<!-- 设置状态栏 -->
<item name="android:colorPrimaryDark">@color/statusColor</item>
<!-- actionBar的颜色 -->
<item name="android:colorPrimary">@color/colorPrimary</item>
<!-- 背景色 -->
<item name="android:windowBackground">@color/windowColor</item>
<!-- 导航色 -->
<item name="android:navigationBarColor">@color/navigationBarColor</item>
<!--actionbar textcolor-->
<item name="android:textColorPrimary">@color/textColorPrimary</item>
</style>
<style name="Theme1" parent="android:Theme.Material.Light">
<!-- 设置状态栏 -->
<item name="android:colorPrimaryDark">@color/statusColor_1</item>
<!-- actionBar的颜色 -->
<item name="android:colorPrimary">@color/colorPrimary_1</item>
<!-- 背景色 -->
<item name="android:windowBackground">@color/windowColor_1</item>
<!-- 导航色 -->
<item name="android:navigationBarColor">@color/navigationBarColor_1</item>
<!--actionbar textcolor-->
<item name="android:textColorPrimary">@color/textColorPrimary_1</item>
</style>
<style name="Theme2" parent="android:Theme.Material.Light">
<!-- 设置状态栏 -->
<item name="android:colorPrimaryDark">@color/statusColor_2</item>
<!-- actionBar的颜色 -->
<item name="android:colorPrimary">@color/colorPrimary_2</item>
<!-- 背景色 -->
<item name="android:windowBackground">@color/windowColor_2</item>
<!-- 导航色 -->
<item name="android:navigationBarColor">@color/navigationBarColor_2</item>
<!--actionbar textcolor-->
<item name="android:textColorPrimary">@color/textColorPrimary_2</item>
</style>
在Color中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#9C27B0</color>
<color name="windowColor">#E1BEE7</color>
<color name="statusColor">#8E24AA</color>
<color name="navigationBarColor">#7B1FA2</color>
<color name="textColorPrimary">#ffffff</color>
<color name="colorPrimary_1">#009688</color>
<color name="windowColor_1">#B2DFDB</color>
<color name="statusColor_1">#00897B</color>
<color name="navigationBarColor_1">#00796B</color>
<color name="textColorPrimary_1">#ffffff</color>
<color name="colorPrimary_2">#FF5722</color>
<color name="windowColor_2">#FFCCBC</color>
<color name="statusColor_2">#F4511E</color>
<color name="navigationBarColor_2">#D84315</color>
<color name="textColorPrimary_2">#ffffff</color>
</resources>
www.google.com/design中可以找到对于的样式,样式已经帮忙搭配好
在改变样式setTheme的方法必须在activity重启之前,所以改变样式的方法如下
@Override
protected void onCreate(Bundle savedInstanceState)
{
int theme = getIntent().getIntExtra("theme",
-1);
if (theme != -1)
{
setTheme(theme);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void changeTheme(int theme)
{
//必须在activity的setContentView之前
//activity必须重启
//注意这个方法就是意图转换的时候不做如何动画
overridePendingTransition(0,
0);
finish();
Intent intent = new Intent(this,
MainActivity.class);
intent.putExtra("theme",
theme);
overridePendingTransition(0,
0);
startActivity(intent);
}