Android 控件设置阴影效果

本文主要记录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 控件设置阴影效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android设置控件阴影的三种方法

    本文实例为大家分享了Android设置控件阴影的方法,供大家参考,具体内容如下 第一种方式:elevation View的大小位置都是通过x,y确定的,而现在有了z轴的概念,而这个z值就是View的高度(elevation),而高度决定了阴影(shadow)的大小. View Elevation(视图高度) View的z值由两部分组成,elevation和translationZ(它们都是Android L新引入的属性). eleavation是静态的成员,translationZ是用来做动画.

  • Android 控件设置阴影效果

    本文主要记录Android控件设置阴影 给控件设置阴影,会使得界面元素更好看一写,google 给我们提供了一个现成的控CardView,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果 本文是使用给控件设置背景实现阴影 在res/drawable 下新建一个 Drawable Resource File 使用 layer-list 图层 就是说可以多个图层一层一层盖上去 新建一个渐变的图层 item作为背景图层,主要是 gradient,shape是用来定义形状

  • Android控件设置宽高比的方法

    0. 困扰很久的问题 Android控件的宽和高保持比例,这是从我接触Android以来,一直不断会遇到的需求.以前,要么就是在代码里直接设置宽和高,要么就是自定义控件.网上也有开源的自定义ViewGroup,可以让其子View比较方便的设置宽和高的比例.但这些实现方式,还是比较麻烦,也不够直观.直到有了DataBinding,我们可以很方便地给控件加上自定义的属性,也就可以很方便的在布局文件中设置控件的宽高比了. 1. 如何实现 通过BinderAdapter为所有View绑定下面的方法,当设

  • Android开发手册TextView控件及阴影效果实现

    目录 实践过程 初识 文字阴影 TextView是Android中最简单也是最常见的控件.今天小空就带大家会会她. 实践过程 初识 经过前两篇常用属性和不常用属性的讲解,是不是有些懵了,不要慌,真实开发中用到的属性其实连五分之一都到不了. 我们先来创建个基本的文本控件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.a

  • Android开发实现AlertDialog中View的控件设置监听功能分析

    本文实例讲述了Android开发实现AlertDialog中View的控件设置监听功能.分享给大家供大家参考,具体如下: 之前给弹出的AlertDialog中的控件设置监听时,老是报空指针异常,之所以报空指针异常,是因为我findViewById写的有问题,因为我们需要给弹出框中的控件设置监听,直接用findViewById是找不到弹出框中的控件的,需要利用Dialog.findViewById或者利用你找到的弹出框中的View,然后view.findViewById;具体看下面代码 packa

  • Android控件之GridView用法实例分析

    本文实例讲述了Android控件之GridView用法.分享给大家供大家参考.具体如下: GridView是一项显示二维的viewgroup,可滚动的网格.一般用来显示多张图片. 以下模拟九宫图的实现,当鼠标点击图片时会进行相应的跳转链接. 目录结构如下: main.xml布局文件,存放GridView控件 <?xml version="1.0" encoding="utf-8"?> <!-- android:numColumns="au

  • Android控件之Gallery用法实例分析

    本文实例讲述了Android控件之Gallery用法.分享给大家供大家参考.具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能有限地显示指定的图像.也就是说,如果为Gallery组件指定了10张图像,那么当Gallery组件显示到第10张时,就不会再继续显示了.这虽然在大多数时候没有什么关系,但在某些情况下,我们希望图像显示到最后一张时再重第1张开始显示,也就是循环显示.要实现这种风格的Gallery组件,就需要对Gallery的Adapter对象进行

  • Android控件之Spinner用法实例分析

    本文实例讲述了Android控件之Spinner用法.分享给大家供大家参考.具体如下: 以下模拟下拉列表的用法 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height=&

  • 很赞的引导界面效果Android控件ImageSwitcher实现

    本文实例为大家分享了Android控件ImageSwitcher实现引导界面的代码,供大家参考,具体内容如下 效果图: 布局代码: <?xml version="1.0" encoding="UTF-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent&

  • Android控件之使用ListView实现时间轴效果

     实现思路: 该View是通过ListView实现的,通过实体两个字段内容content和时间time来展示每个ListItem 时间轴是使用上面一条线(20dp)和中间一个圆(15dp)和下面一条线(40dp)组装成的 在ListView中,设置其分割线为空,并且没有点击效果 效果图: 步骤一:使用xml画出一个灰色的圆点(time_cycle.xml) <?xml version="1.0" encoding="utf-8"?> <shape

  • Android控件系列之Toast使用介绍

    Toast英文含义是吐司,在Android中,它就像烘烤机里做好的吐司弹出来,并持续一小段时间后慢慢消失 Toast也是一个容器,可以包含各种View,并承载着它们显示. 使用场景: 1.需要提示用户,但又不需要用户点击"确定"或者"取消"按钮. 2.不影响现有Activity运行的简单提示. 用法: 1.可以通过构造函数初始化: 复制代码 代码如下: //初始化Toast Toast toast = new Toast(this); //设置显示时间,可以选择To

随机推荐