• 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>
  • 相关阅读:
    WPF 自适应布局控件
    c# 将Datarow转成Datarowview
    C# 全局Hook在xp上不回调
    WPF datagrid AutoGenerateColumns隐藏部分列
    WPF wpf中按钮操作权限控制
    C# autofac配置文件中设置单例
    Castle ActiveRecord 二级缓存使用 异常记录
    VS2013 抛出 stackoverflow exception 的追踪
    CastleActiveRecord在多线程 事务提交时数据库资源竞争导致更新失败的测试结果记录
    WF4.0 工作流设计器 传入参数问题记录?
  • 原文地址:https://www.cnblogs.com/bokeofzp/p/6826119.html
Copyright © 2020-2023  润新知