android中菜單style、menu、drawable等文件基本功能介紹


一、style 樣式,

  我們寫style大多是用來定義主題,以及與主題相關的一些屬性,包括toolbar或actionbar的一些屬性,下面以一個style文件為例來讓大家明白我們可以利用style屬性來做啥:

                <resources>

                    <!-- Base application theme. -->
                    <style name="AppTheme" parent="AppTheme.Base"></style>

                    <style name="AppTheme.Base" parent="Theme.AppCompat">
                        <!--將ActionBar隱藏,這里使用ToolBar-->
                        <item name="windowActionBar">false</item>
                        <!-- 使用 API Level 22以上編譯的話,要拿掉前綴字 -->
                        <item name="windowNoTitle">true</item>
                        <!--colorPrimaryDark對應狀態欄的顏色-->
                        <item name="colorPrimaryDark">@color/statusColor</item>
                        <!--colorPrimary 對應ToolBar的顏色-->
                        <item name="colorPrimary">@color/toolBarColor</item>
                        <!--colorAccent 對應EditText編輯時、RadioButton選中、CheckBox等選中時的顏色。-->
                        <item name="colorAccent">@color/editColor</item>
                        <!--窗口的顏色-->
                        <item name="android:windowBackground">@color/widowColor</item>

                        <!--//全屏即無通知欄-->
                        <item name="android:windowFullscreen">false</item>
                        <!--//是否有遮蓋-->
                        <item name="android:windowContentOverlay">@null</item>
                        <!--//定義菜單中三個點的樣式-->
                        <item name="android:actionOverflowButtonStyle">@style/OverflowStyle</item>
                    </style>

                    <style name="OverflowStyle">
                        <item name="android:src">@drawable/v2_overflow</item>
                    </style>

                    <!--Status bar color-->
                    <color name="statusColor">#ff0000</color>
                    <!-- toolBar color -->
                    <color name="toolBarColor">#0000ff</color>
                    <!--EditText,RadioButton,CheckBox color-->
                    <color name="editColor">#ffff00</color>
                    <!--Window color-->
                    <color name="widowColor">#ffffff</color>

</resources>

  其中設計到了菜單的那個三個點,它其實是用來點擊顯示 隱藏的菜單項,這個后面在講menu時候會講到,一般系統有默認的圖標,但有時候我們想定義個性的菜單的圖標選項。

 二、menu文件

  menu文件是用來定義菜單項的,里面比較重要的屬性是:icon和showAsAction ,icon是菜單顯示的圖標,showAsAction是該菜單項是否顯示,有三個:always、ifRoom、never。always則是顯示;ifroom 則是若有控件則顯示,若沒有就隱藏;若是never則會顯示三個點的菜單項(當然也可以自定義圖標),點擊該項才會出來。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <item android:id="@+id/action_refresh"
        android:title="@string/opti_menu_refresh"
        android:icon="@drawable/v2_refresh"
        android:showAsAction="always" />
    <item android:id="@+id/action_power"
        android:title="@string/opti_menu_turn_off"
        android:icon="@drawable/v2_power"
        android:showAsAction="always" />
    <item android:id="@+id/action_speaker"
        android:title="@string/set_speaker_on"
        android:showAsAction="never" />
    <item android:id="@+id/action_sleep"
        android:title="@string/sleep_timer"
        android:showAsAction="never" />
    <item android:id="@+id/action_setting"
        android:title="@string/band_list"
        android:showAsAction="never" />
    
</menu>

 三、drawable文件

  這個文件主要是繪制一些圖像作為其他的控件background或者src屬性的值,當然也可以自定義一些控件的屬性等。

下面可以給出兩個例子:

  1、將imgeview的background的背景值設定為該drawable文件,就可以實現簡單的FloatingActionButton的效果:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <layer-list>
            <!-- Shadow -->
            <item android:top="1dp" android:right="1dp">
                <layer-list>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#08000000"/>
                            <padding
                                android:bottom="3px"
                                android:left="3px"
                                android:right="3px"
                                android:top="3px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#09000000"/>
                            <padding
                                android:bottom="2px"
                                android:left="2px"
                                android:right="2px"
                                android:top="2px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#10000000"/>
                            <padding
                                android:bottom="2px"
                                android:left="2px"
                                android:right="2px"
                                android:top="2px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#11000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#12000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#13000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#14000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#15000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#16000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                </layer-list>
            </item>

            <!-- Blue button pressed -->
            <item>
                <shape android:shape="oval">
                    <solid android:color="#90CAF9"/>
                </shape>
            </item>
        </layer-list>
    </item>

    <item android:state_enabled="true">

        <layer-list>
            <!-- Shadow -->
            <item android:top="2dp" android:right="1dp">
                <layer-list>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#08000000"/>
                            <padding
                                android:bottom="4px"
                                android:left="4px"
                                android:right="4px"
                                android:top="4px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#09000000"/>
                            <padding
                                android:bottom="2px"
                                android:left="2px"
                                android:right="2px"
                                android:top="2px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#10000000"/>
                            <padding
                                android:bottom="2px"
                                android:left="2px"
                                android:right="2px"
                                android:top="2px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#11000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#12000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#13000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#14000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#15000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                    <item>
                        <shape android:shape="oval">
                            <solid android:color="#16000000"/>
                            <padding
                                android:bottom="1px"
                                android:left="1px"
                                android:right="1px"
                                android:top="1px"
                                />
                        </shape>
                    </item>
                </layer-list>
            </item>

            <!-- Blue button -->

            <item>
                <shape android:shape="oval">
                    <solid android:color="#03A9F4"/>
                </shape>
            </item>
        </layer-list>

    </item>

</selector>
View Code

  2、設定imageview的背景為下面的值,當按下該view的時候就會變色(FloatingActionButton這么設置是無效的,具體看coordinatorLayout的介紹

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" android:drawable="@color/floatBack1"></item>
    <item android:state_pressed="true" android:drawable="@color/floatBackPressed"></item>
</selector>

 


免責聲明!

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



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