zoukankan      html  css  js  c++  java
  • 组建你自己的Theme,组件你的Style

    Andorid-Style,组建你自己的Theme,组件你的Style

    前言:

    今天,尝试了一个新的Demo,也尝试深入学习,话不多说,看一下,这个Demo如何实现的自定义主题与组件Style是如何绑定的。

    看右图,那个Du Dummy Button是自定义的组件主题。请看下面的主题与组件的Style是如何绑定的。

     

    1.自定APP主题,一个总的主题,相当于Java的工厂模式或一个Map表,通过它,可以调用其它的组件Style,例如下面定义的

    metaButtonBarStyle和CircleButtonBarButton

    <style name="FullscreenTheme" parent="android:Theme.Holo">
        <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:windowBackground">@null</item>
        <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
        <item name="CircleButtonBarButton">@style/CircleButtonBarButton</item>
    </style>
    
     


    2metaButtonBarStyle和CircleButtonBarButton2.定义组件主题 

    代码如下:

    <!-- Backward-compatible version of ?android:attr/buttonBarStyle -->
    <style name="ButtonBar">
        <item name="android:paddingLeft">2dp</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:paddingRight">2dp</item>
        <item name="android:paddingBottom">0dp</item>
        <item name="android:background">@android:drawable/bottom_bar</item>
    </style>
    
    <!-- Backward-compatible version of ?android:attr/buttonBarButtonStyle -->s
    <style name="CircleButtonBarButton">
        <item name="android:paddingLeft">2dp</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:paddingRight">2dp</item>
        <item name="android:paddingBottom">8dp</item>
        <item name="android:background">@drawable/circle_btn</item>
    </style>


     
    3.在布局界面如何调用呢,有什么组件呢?哪些是可以使用的呢?就是通才attrs来调用有

    <resources>
    
        <!-- Declare custom theme attributes that allow changing which styles are
             used for button bars depending on the API level.
             ?android:attr/buttonBarStyle is new as of API 11 so this is
             necessary to support previous API levels. -->
        <declare-styleable name="ButtonBarContainerTheme">
            <attr name="metaButtonBarStyle" format="reference" />
            <attr name="CircleButtonBarButton" format="reference" />
        </declare-styleable>
    
    </resources>

    4.都写好的,可以用了,也可以考虑做个主题库什么的,把9path图片,自定义的组件风格,等,组成一个Theme,只要把二三十个组件做好,就是一个完整的库.

            android:id="@+id/Test"
            style="?metaButtonBarStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/dummy_button" />
    <Button
        android:id="@+id/dummy_button"
        style="?CircleButtonBarButton"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:text="@string/dummy_button"
        android:layout_gravity="right|bottom" />
  • 相关阅读:
    sencha touch 入门学习资料大全
    细说websocket
    【读fastclick源码有感】彻底解决tap“点透”,提升移动端点击响应速度
    新鲜的前端效果,边栏菜单、滑动效果
    PhoneGap+JQuery Mobile移动应用开发学习笔记
    21个值得收藏的Javascript技巧
    NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
    Node.js 中文学习资料和教程导航
    PayPal为什么从Java迁移到Node.js 性能提高一倍 文件代码减少44%
    知道创宇研发技能表v2.1
  • 原文地址:https://www.cnblogs.com/orangebook/p/4771949.html
Copyright © 2011-2022 走看看