美文网首页
背景设置点击

背景设置点击

作者: Nj_第一批老去的90后 | 来源:发表于2017-04-07 00:19 被阅读17次

    在Drawable文件夹下建立xml文件

    • 只有背景色和形状
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
           android:shape="rectangle">
        <corners android:bottomLeftRadius="6dp"
                 android:bottomRightRadius="6dp"
                 android:topLeftRadius="6dp"
                 android:topRightRadius="6dp"/>
        <solid android:color="@color/roud_solid_white"/>
        <stroke android:width="1px" android:color="@color/roud_stroke_white"/>
    </shape>
    
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/outer_bg_border_ltrb" android:state_pressed="false"/>
        <item android:drawable="@drawable/outer_bg_border_ltrb_press" android:state_pressed="true"/>
    </selector>
    
    ---------------------正常状态下(边框+主题背景)-------------------
    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- 边框颜色值 -->
        <item>
            <shape>
                <solid android:color="@color/black_d9" />
                <corners android:topLeftRadius="10dp"
                    android:topRightRadius="10dp"
                    android:bottomLeftRadius="10dp"
                    android:bottomRightRadius="10dp"/>
            </shape>
        </item>
        <!-- 主体背景颜色值 -->
        <item android:top="1px" android:left="1px" android:right="1px" android:bottom="1px">
            <shape>
                <solid android:color="@color/white"/>
                <corners android:topLeftRadius="10dp"
                    android:topRightRadius="10dp"
                    android:bottomLeftRadius="10dp"
                    android:bottomRightRadius="10dp"/>
            </shape>
        </item>
    </layer-list>
    ---------------------点击状态下(边框+主题背景)-------------------
    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- 边框颜色值 -->
        <item>
            <shape>
                <solid android:color="@color/black_d9" />
                <corners android:topLeftRadius="10dp"
                    android:topRightRadius="10dp"
                    android:bottomLeftRadius="10dp"
                    android:bottomRightRadius="10dp"/>
            </shape>
        </item>
        <!-- 主体背景颜色值 -->
        <item android:top="1px" android:left="1px" android:right="1px" android:bottom="1px">
            <shape>
                <solid android:color="@color/white_f2"/>
                <corners android:topLeftRadius="10dp"
                    android:topRightRadius="10dp"
                    android:bottomLeftRadius="10dp"
                    android:bottomRightRadius="10dp"/>
            </shape>
        </item>
    </layer-list>
    
    

    第二种方式:只有颜色变化,在String.xml里写

    --string.xml----
        <!-- 批量处理按钮 -->
        <drawable name="batch_process_normal">#228fea</drawable>
        <drawable name="batch_process_pressed">#1d79c4</drawable>
    

    将点击和正常态设置在同一个文件(layer-list作为根节点)

    对于layer-list标签,从这里也可以看出来:它的绘制是==逐层绘制==的,层与层之间是没有任何影响的,每一层可以单独设置selector标签来响应不同的用户操作状态。

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape>
                <corners android:radius="25dp" />
                <solid android:color="#E4E4E4" />
            </shape>
        </item>
        <item
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp">
            <selector>
                <item android:state_pressed="true">
                    <shape>
                        <corners android:radius="25dp" />
                        <solid android:color="#FFFF00" />
                    </shape>
                </item>
                <item>
                    <shape>
                        <corners android:radius="25dp" />
                        <solid android:color="#00ff00" />
                    </shape>
                </item>
            </selector>
        </item>
    </layer-list>
    

    将selector作为根节点

    <?xml version="1.0" encoding="utf-8"?>  
    <selector xmlns:android="http://schemas.android.com/apk/res/android">  
        <item android:state_pressed="true">  
            <layer-list>  
                <item>  
                    <shape>  
                        <corners android:radius="25dp"/>  
                        <solid android:color="#E4E4E4"/>  
                    </shape>  
                </item>  
                <item android:left="2dp" android:top="2dp"  
                      android:bottom="2dp" android:right="2dp">  
                    <shape>  
                        <corners android:radius="25dp"/>  
                        <solid android:color="#FFFF00"/>  
                    </shape>  
                </item>  
            </layer-list>  
        </item>  
      
        <item>  
            <layer-list>  
                <item>  
                    <shape>  
                        <corners android:radius="25dp"/>  
                        <solid android:color="#E4E4E4"/>  
                    </shape>  
                </item>  
                <item android:left="2dp" android:top="2dp"  
                      android:bottom="2dp" android:right="2dp">  
                    <shape>  
                        <corners android:radius="25dp"/>  
                        <solid android:color="#FFFFFF"/>  
                    </shape>  
                </item>  
            </layer-list>  
        </item>  
      
    </selector>  
    

    相关文章

      网友评论

          本文标题:背景设置点击

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