• android button背景随心搭配


    里我举例如何使用selector,layer-list完成button背景的层叠组合,从而有不同情形下不同效果

    button_ctrl.xml中选择器

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

    button_highlight_ctrl.xml中两层图

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
    android:drawable="@drawable/button_highlight_back"
    android:top
    ="2dip"
    android:right
    ="2dip"
    android:bottom
    ="2dip"
    android:left
    ="2dip"/>
    <item
    android:drawable="@drawable/button_highlight_fore"
    android:top
    ="2dip"
    android:right
    ="2dip"
    android:bottom
    ="2dip"
    android:left
    ="2dip"/>
    </layer-list>
    button_highlight_back.xml中完成背景颜色的渐变

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape
    ="rectangle">
    <corners
    android:radius="4dip"/>
    <gradient
    android:type="linear"
    android:angle
    ="270"
    android:startColor
    ="@color/highlight_button_start_color"
    android:centerColor
    ="@color/highlight_button_middle_color"
    android:endColor
    ="@color/highlight_button_end_color"/>
    </shape>
    button_highlight_fore是一张前景图片,即按下时的顶部阴影:

    至此,已完成高亮button的制作,接下来是普通button

    button_normal_ctrl.xml中两层图

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
    android:drawable="@drawable/button_normal_back"
    android:top
    ="2dip"
    android:right
    ="2dip"
    android:bottom
    ="2dip"
    android:left
    ="2dip"/>
    <item
    android:drawable="@drawable/button_normal_fore"
    android:top
    ="2dip"
    android:right
    ="2dip"
    android:bottom
    ="1dip"
    android:left
    ="2dip"/>
    </layer-list>
    button_normal_back.xml和button_normal_fore处理类似高亮,不贴代码了

     

    下面是运行效果截图:

    普通  高亮

     

    当然前面不一定写字符,可以是一张图片。总之变化可以多样,核心思想是一致的。

  • 相关阅读:
    【转】工作流持久化的几点说明
    转:壹百度-百度十年千倍的29条法则
    CRM软件设计评测点与采集测评点
    键盘上各按键对应的ASSII值
    导入Excle数据至数据库 “外部表不是预期的格式”错误信息
    浅谈代码的执行效率(2):编译器的威力 [摘自赵劼老师的博客]
    代码的执行效率(3)缓存与局部性 摘自赵劼老师的博客
    浅谈代码的执行效率(一)
    C# Base64加解密图片
    Bulk Insert的用法
  • 原文地址:https://www.cnblogs.com/jacktu/p/2053814.html
Copyright © 2020-2023  润新知