組建你自己的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" />

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM