思路:

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

关系图

下面自己定义两种阴影效果:

res/drawable-hdpi/shadow1.xml

<?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>

/TestAA/res/drawable-hdpi/shadow2.xml

<?

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>

效果图:

转载于:https://www.cnblogs.com/claireyuancy/p/6892442.html

android中图型的阴影效果(shadow-effect-with-custom-shapes)相关推荐

  1. Shadow effect with custom shapes

    It's easy to create a shadow for your views using custom shapes. The idea it's that you create the s ...

  2. [译] 绘制路径:Android 中矢量图渲染

    原文地址:Draw a Path: Rendering Android VectorDrawables 原文作者:Nick Butcher 译文出自:掘金翻译计划 本文永久链接:github.com/ ...

  3. SVG - 在Android中使用矢量图全攻略

    概念 什么是矢量图,SVG SVG全称:可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像 ...

  4. android 文字添加阴影,android中给TextView或许Button的文字添加阴影效果

    android中给TextView或者Button的文字添加阴影效果 1在代码中添加文字阴影 TextView 有一个方法 /** * Gives the text a shadow of the s ...

  5. 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

    文章目录 一.Android 5.0 以下的矢量图方案 二.矢量图生成为 PNG 图片 三.完整的 build.gradle 构建脚本 四.编译效果 五.参考资料 一.Android 5.0 以下的矢 ...

  6. 【Android 安装包优化】Android 中使用 SVG 图片 ( SVG 矢量图简介 | Android 中生成 Vector 矢量图资源 )

    文章目录 一.SVG 矢量图简介 二.Android 中生成 Vector 矢量图资源 三.参考资料 一.SVG 矢量图简介 Android SVG 参考文档 : https://developer. ...

  7. 关于android中的.9图(一)——如何画.9图

    大家都知道,android中有一种特殊的图片,后缀格式一般是.9.png .这种图片一般都是为了适应在使用过程中可以拉伸而不失真而引入的一种图片.本文中主要介绍9图的画法以及静态用法,所谓的静态用法就 ...

  8. android中实现ImageView中显示视频的略缩图

    在Android中,我们有时候需要给视频文件添加一个缩略图. 据说ImageLoader和Glide等框架能实现这个功能,但是我尝试了下都没有成功.   有使用成功的请指导我下 XD 那么我们何必要借 ...

  9. Android中圆形图的几种实现方式

    在Android开发中,圆形图片是很常见的,例如淘宝的宝贝,QQ的联系人头像等都是圆形的图片, 但是Android原生的ImageView又不能显示圆形的图片,这就需要我们自己去实现一个圆形图了 一. ...

最新文章

  1. VS2010编译出现APPCRASH问题
  2. 企业级Java应用最重要的4个性能指标
  3. python中Json、os、sys、hashlib等内置模块
  4. (三)系统与架构级低功耗设计
  5. 阿里云护航罗振宇2018“时间的朋友”跨年演讲,与千万观众一起跨年 1
  6. ATM柜员机JAVA课程设计_ATM柜员机学年论文设计(Java课程设计)
  7. 使用sql2005的新特性分页的储存过程:Top,Row_Number
  8. 动态生成的DOM不会触发onclick事件的原因及解决方法
  9. 精通javascript、javascript语言精粹读书笔记
  10. OA应用案例:采矿业如何应用OA办公系统
  11. 程序是怎么跑起来的? —— CPU 是什么?C/C++程序的运行
  12. 学习 Hybrid Beamforming for Millimeter Wave Systems Using the MMSE Criterion
  13. bugzilla 删除bug
  14. SharpDevelop的安装与配置
  15. echarts,x轴y轴,配置参数详情
  16. Laravel Eloquent 小技巧
  17. js实现放大镜(详细注释)
  18. 物理学十大实验(1-5)
  19. 供应链产品经理需要具备的基本能力有哪些?
  20. LPK木马分析-03

热门文章

  1. Markdown 11种基本语法
  2. 【工业控制】How to Optimize a Waveform
  3. 【嵌入式】C语言高级编程-地址对齐(07)
  4. ubuntu系统目录介绍
  5. 【Linux系统编程应用】 V4L2编程基础(一)
  6. python基础list_Python基础4(list:列表)
  7. 怎么让电脑不自动休眠_【平安惠阳提醒您】电脑应设置自动休眠 避免产生火灾隐患...
  8. gc日志一般关注什么_Java架构师必懂的GC日志知识
  9. 【算法】差分约束系统
  10. POJ 3253 Fence Repair C++ STL multiset 可解