您的位置:首页 > 移动开发 > Android开发

android5.0新特性1Styke风格,颜色搭配,风格转换,不做Intent切换的动画

2016-03-15 12:20 483 查看
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>

    </s
dc19
tyle>

在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);

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: