为控件设置一个有阴影感的背景图片即可,可以使用shape

在自定义shape中增加一层或多层,并错开,即可显示阴影效果。为增加立体感,按钮按下的时候,只设置一层。我们可以通过top, bottom, right 和 left 四个参数来控制阴影的方向和大小

//自定义两种阴影效果

第一种

<?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 android:left="4dp" android:top="4dp">
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="30dip"/> 
        </shape>
      </item> 
    </layer-list> 
  </item>  
  <item> 
    <layer-list> 
      <!-- 第一层 -->  
      <item android:left="4dp" android:top="4dp">
        <shape> 
          <solid android:color="#66000000"/>  
          <corners android:radius="30dip"/>  
          <!-- 描边 -->  
          <stroke android:width="1dp" android:color="#ffffffff"/> 
        </shape>
      </item>  
      <!-- 第二层 -->  
      <item android:bottom="4dp" android:right="4dp">
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="30dip"/>  
          <!-- 描边 -->  
          <stroke android:width="1dp" android:color="#ffffffff"/> 
        </shape>
      </item> 
    </layer-list>
  </item> 
</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 android:left="4dp" android:top="4dp"
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item> 
    </layer-list>
  </item>  
  <!-- 正常状态 -->  
  <item> 
    <layer-list> 
      <!-- 第一层 -->  
      <item android:left="2dp" android:top="2dp"
        <shape> 
          <solid android:color="#66000000"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item>  
      <!-- 第二层 -->  
      <item android:bottom="4dp" android:right="4dp"
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item>  
      <!-- 第三层 -->  
      <item android:bottom="6dp" android:right="6dp"
        <shape> 
          <solid android:color="#ffcccccc"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item> 
    </layer-list> 
  </item> 
</selector>

设置后的效果图如下

怎么为android控件边缘添加阴影的更多相关文章

  1. Android控件上添加图片

    项目中有一个点赞功能,点赞的小图标添加在点赞列表旁边,在xml里可以进行设置,也可以在代码中进行绘图. 下面是两种方法的设置: 1.xml里:一些控件:button.textView等等里面有个属性是 ...

  2. Android控件Gridview实现多个menu模块,可添加可删除

    此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...

  3. Android控件属性大全(转)

    http://blog.csdn.net/pku_android/article/details/7365685 LinearLayout         线性布局        子元素任意: Tab ...

  4. android控件的属性

    android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...

  5. Android控件Gridview实现仿支付宝首页,Fragment底部按钮切换和登录圆形头像

    此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...

  6. UIAutomator定位Android控件的方法

    UIAutomator各种控件定位的方法. 1. 背景 使用SDK自带的NotePad应用,尝试去获得在NotesList那个Activity里的Menu Options上面的那个Add note菜单 ...

  7. 从Android系统出发,分析Android控件构架

    从Android系统出发,分析Android控件构架 Android中所有的控件追溯到根源,就是View 和ViewGroup,相信这个大家都知道,但是大家也许会不太清楚它们之间的具体关系是什么,在A ...

  8. 一步一步学android控件(之十五) —— DegitalClock & AnalogClock

    原本计划DigitalClock和AnalogClock单独各一篇来写,但是想想,两个控件的作用都一样,就和在一起写一篇了. DegitalClock和AnalogClock控件主要用于显示当前时间信 ...

  9. 一步一步学android控件(之十六)—— CheckBox

    根据使用场景不同,有时候使用系统默认的CheckBox样式就可以了,但是有时候就需要自定义CheckBox的样式.今天主要学习如何自定义CheckBox样式.在CheckBox状态改变时有时需要做一些 ...

随机推荐

  1. html+css自定义导航

    利用css来编写的导航条,先看看效果: 代码区: html: <!--导航部分--> {block name="nav"} <nav> <div cl ...

  2. (数组)Largest Rectangle in Histogram(栈解问题)

    Largest Rectangle in Histogram Given n non-negative integers representing the histogram's bar height ...

  3. [学习笔记]fork写实复制

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include <unistd.h> ...

  4. Java50道经典习题-程序43 求奇数个数

    题目:求0—7所能组成的奇数个数,奇数中不包含重复数字. public class Prog43 { public static void main(String[] args) { //0-7能组成 ...

  5. 在 Java 的反射中,Class.forName 和 ClassLoader 的区别

    1. 解释 在java中Class.forName()和ClassLoader都可以对类进行加载.ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全 ...

  6. mysql 远程登录与表名大小写问题

    好久没写博客了,这段时间在学习一个开源的项目,里面使用到了mysql,好久没使用mysql了.在使用过程中遇到了一个问题,远程登陆.报错信息很明显,连接失败.解决思路如下: 1. 首先检查到服务器网络 ...

  7. .net core 部署在Linux系统上运行的环境搭建总结

    安装Linux用的是腾讯云的centos7.5,需要安装有环境有mysql5.7  .netcore2.1 nginx1.14 1.首先是mysql的安装 我用的链接工具是putty,首先root登入 ...

  8. meta标签使用

    META标签分两大部分:HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME). ★HTTP-EQUIV HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助 ...

  9. 简单介绍Jenkins&持续集成

    1.定义 持续集成(Continuous integration),简称CI. 随着软件项目复杂度的增加,就会对集成和确保软件组件能够在一起工作提出了更多的要求-要早集成.常集成. CI不是一项软件开 ...

  10. 自定义等高 Cell

    1.介绍 1.1 代码自定义 cell(使用 frame) 创建一个继承自 UITableViewCell 的子类,比如 BookCell1. 在 initWithStyle:reuseIdentif ...