Android 控件设置阴影效果

所属分类: 软件编程 / Android 阅读数: 49
收藏 0 赞 0 分享

本文主要记录Android控件设置阴影

  • 给控件设置阴影,会使得界面元素更好看一写,google 给我们提供了一个现成的控CardView,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果
  • 本文是使用给控件设置背景实现阴影
  • 在res/drawable 下新建一个 Drawable Resource File
  • 使用 layer-list 图层 就是说可以多个图层一层一层盖上去
  • 新建一个渐变的图层 item作为背景图层,主要是 gradient,shape是用来定义形状的,corners设置角度,gradient定义该形状里面为渐变色填充,startColor起始颜色,endColor结束颜色,angle表示方向角度。当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上
<item >
 <shape android:shape="rectangle" >
 <gradient
  android:angle="90"
  android:endColor="#dad9d9"
  android:startColor="#03a430" />
 <corners android:radius="10dp" />
 </shape>
 </item>

这里写图片描述

新建一个图层,作为顶层图层, 阴影实现的原理,就是顶层的小显示一点,露出一部分下面的图层,这个就需要设置Item的 left, top, right, bottom属性,这几个参数的设置就类似于设置margin, 这样就可以出来阴影效果了,当然为了效果,我的参数设置的有点夸张,只设置了右边和下边的阴影,solid 设置填充, 还有stroke 设置边框,设置了颜色,设置了宽度就可以看见边框效果了

<item >
 <shape android:shape="rectangle" >
 <gradient
  android:angle="90"
  android:endColor="#dad9d9"
  android:startColor="#03a430" />

 <corners android:radius="10dp" />
 </shape>
</item>
<item android:right="20dp"
 android:bottom="40dp">
 <shape android:shape="rectangle" >
 <solid android:color="#FFFFFF"/>
 <corners android:radius="10dp" />
 </shape>
</item>

这里写图片描述

顶层的图层上,还是可以添加触摸的变化效果,即手指触碰到该控件时,控件背景色变化

<item
 android:right="2dp"
 android:bottom="6dp">
 <selector>
  <item android:state_focused="false" android:state_pressed="true" >
  <shape android:shape="rectangle" >
   <solid android:color="@color/E5"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
  <item>
  <shape android:shape="rectangle" >
   <solid android:color="@color/white"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
 </selector>
 </item>

使用:android:background=”@drawable/你的阴影xml文件”

这里写图片描述

<LinearLayout
 android:layout_width="match_parent"
 android:layout_height="50dp"
 android:background="@drawable/vcam_entry_border"
 android:gravity="center"
 android:orientation="vertical">
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:paddingRight="@dimen/common_measure_10dp"
 android:textColor="@color/black_100"
 android:text="啦啦啦啦,我有阴影"/>
</LinearLayout>

附 : 完整的阴影xml 代码

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 <!-- 阴影部分 最下面一层 -->
 <item >
 <shape android:shape="rectangle" >
  <gradient
  android:angle="90"
  android:endColor="#777777"
  android:startColor="#C5C5C5" />
  <corners android:radius="10dp" />
 </shape>
 </item>
 <!-- 背景部分 -->
 <!-- 形象的表达:bottom left ... 类似于设置 margin -->
 <item
 android:right="2dp"
 android:bottom="6dp">
 <selector>
  <item android:state_focused="false" android:state_pressed="true" >
  <shape android:shape="rectangle" >
   <solid android:color="@color/E5"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
  <item>
  <shape android:shape="rectangle" >
   <solid android:color="@color/white"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
 </selector>
 </item>
</layer-list>

以上所述是小编给大家介绍的Android 控件设置阴影效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多