Android的materialDesign风格的主题样式

使用materialDesign风格需要注意:

1,设置应用的targetVersion和minSdkVersion最低为21
2,在values目录下的style资源文件中,创建一个style,让其继承自android.Theme.Material
3,在AndroidManefest中指定应用的主题或者Activity的主题为我们设定的样式

Google官方提供了3中配色风格:
1,黑色主题,Theme.MaterialDesign
2,亮色主题,Theme.MaterialDesign.Light
3,明亮主题黑色,Theme.MaterialDesign.Light.DarkActionBar

也可以继承系统提供的MaterialDesign样式,进行配色,
手机

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <!--电池条,状态栏颜色,会被statusBarColor效果覆盖-->
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<!--<item name="android:colorPrimaryDark">@color/red</item>-->

        <!--电池条,状态栏颜色,继承自colorPrimaryDark-->
        <item name="android:statusBarColor">@color/colorPrimaryDark</item>

        <!--标题栏颜色-->
        <item name="colorPrimary">@color/colorPrimary</item>
        <!--底部栏,底部手机默认菜单栏颜色-->
        <item name="android:navigationBarColor">@color/navigationColor</item>

        <!--控件默认颜色,效果会被colorControlActivated取代-->
        <item name="colorAccent">@color/colorAccent</item>
        <!--文字颜色 -->
        <item name="android:textColor">@color/blue</item>

        <!--背景色-->
        <item name="windowBackground">@color/backGroundColor</item>

        <!--应用前景色,listview的分割线,switch滑动区默认使用该颜色-->
        <item name="colorForeground">@color/blue</item>
        <!--应用背景色,popMenu的背景默认使用该颜色-->
        <item name="colorBackground">@color/green</item>
        <!--控件的默认色调-->
        <item name="android:colorControlNormal">@color/red</item>
        <!--控件按压的色调-->
        <item name="android:colorControlHighlight">@color/red</item>
        <!--控件选中时的颜色,默认使用colorAccent-->
        <item name="android:colorControlActivated">@color/red</item>
        <!--默认按钮的背景色-->
        <item name="android:colorButtonNormal">@color/red</item>
        <!--radiobutton,CheckBox等控件的文字-->
        <item name="textColorPrimaryDisableOnly">@color/red</item>
        <!--应用的主要文字颜色,actionbar的标题文字默认使用该颜色-->
        <item name="android:textColorPrimary">@color/red</item>

        <!--主题不仅可以对application和activity使用,也可以对某一个控件单使用,
        或者在xml布局中给一个根节点控件设置android:theme属性,来修改它和它所有子控件的主体。
        如果我们要对特定控件做自定义修改,更建议通过控件自身的API进行设置修改-->

    </style>

</resources>

值得注意的是:在设置这些item属性的时候,会发现这样的情况,

<item name="colorPrimaryDark">@color/blue</item>
<item name="android:colorPrimaryDark">@color/red</item>

可以发现,都是设置这个属性,都是系统提示的给出的属性名,但是一个是android冒号靠头的,我测试发现,android冒号开头的设置会覆盖没有android冒号的属性设置。也就是说,对于上面的设置电池条颜色的代码,电池条会是红色,而不是蓝色。但是注释掉下面打一句android冒号开头的代码,上面的代码就会有效果了,电池条就是蓝色了。
设置属性

经过我的测试,发现,加了android冒号的属性兼容性更高,有些时候,加了某个属性,但是编译会报错,报错说找不到某一个属性,是在兼容包的values文件中,找不到某一个属性
例如:


<!--背景色-->
<item name="android:windowBackground">@color/backGroundColor</item>

修改为:

<!--背景色-->
<item name="windowBackground">@color/backGroundColor</item>

就会报错,在messages窗口和gradle console窗口看到报错信息,很显然就是找不到windowBackground这个属性
找不到属性

猜你喜欢

转载自blog.csdn.net/jakezhang1990/article/details/79344016
今日推荐