主题色

作者: waiwaaa | 来源:发表于2019-03-29 09:45 被阅读0次

    系统生成的主题

    <style name="Theme.App" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Main theme colors -->
        <!--   your app branding color for the app bar -->
        <item name="colorPrimary">@color/theme_primary</item>
        <!--   darker variant for the status bar and contextual app bars -->
        <item name="colorPrimaryDark">@color/theme_primary_dark</item>
        <!--   theme UI controls like checkboxes and text fields -->
        <item name="colorAccent">@color/theme_color_accent</item>
    </style>
    
    102327334708131.png

    图上的各参数都可以直接配置到主题中生效。其中colorPrimaryDark仅在Lollipop以上机器生效。

    colorAccent解析
    colorAccent会改变光标颜色、checkbox背景色等。
    基本上可以理解为控件的主色调。


    colorAccent.png

    Material中还有一个重要的特性是阴影的设置和波纹效果的实现,这里来粗略说明一下:

    Elevation - 设置阴影
    v21以后在View的xml中使用android:elevation属性,或者在代码中使用View的setElevation()方法。

    兼容老版的阴影策略
    还是需要使用.9图片的阴影来做。

    注: ViewCompat.setElevation() sadly doesn't apply shadows in pre-Lollipop.

    RippleDrawable - 波纹效果
    使用已经提供好的
    ?android:attr/selectableItemBackground
    扩散到View边界
    ?android:attr/selectableItemBackgroundBorderless
    设置后,会从孩子往父亲找一个依附的色。如果View往上找的时候,亲生父亲没背景色,会继续向上查找直到最顶端。找到了最顶端的爷爷,这个时候才绘制。
    然而,如果父亲的兄弟又绘制了颜色,且盖住了最顶端的绘制,会导致看不到效果。如果有一定的透明度,结果就显而易见了。
    特别注意:
    当把硬件加速给关闭时,这个效果是没有的。
    这是API 21的新属性,老版本无法使用.
    改变默认响应色
    改变Theme中的android:colorControlHighlight属性。

    自定义

    <!-- A green ripple drawn atop a black rectangle. -->
    <ripple android:color="#ff00ff00">
        <item android:drawable="@android:color/black" />
    </ripple>
    
    <!-- A blue ripple drawn atop a drawable resource. -->
    <ripple android:color="#ff0000ff">
        <item android:drawable="@drawable/my_drawable" />
    </ripple>
    

    android:color中是点击响应色,也是波纹扩散色。
    item中是正常状态下的显示。

    相关文章

      网友评论

          本文标题:主题色

          本文链接:https://www.haomeiwen.com/subject/eotxkqtx.html