Android 为控件设置阴影

在Android中设置一个阴影很简单,只需要两步:

  1. 设置eleavation值(高度)
  2. 添加一个背景或者outline (即阴影的形状)

说明:

View的大小位置都是通过x,y确定的,而现在有了z轴的概念,而这个z值就是View的高度(elevation),而高度决定了阴影(shadow)的大小

在这里插入图片描述
注:View的z值由两部分组成,elevation和translationZ(它们都是Android L新引入的属性)。

  • eleavation:是静态的成员:设置该组件“浮”起来的高度;
  • translationZ:是用来做动画:设置该组件在Z方向(垂直屏幕方向)上的位移。

Z(阴影大小) = elevation + translationZ

在layout中使用属性去定义:

android:elevation="10dp"
android:translationZ="10dp"

在java代码中使用

View.setElevation(float); 
View.setTranslationZ(float);

举例说明:

给TextView设置android:backgroundelevation(高度决定了阴影的大小)。

<TextView
    android:id="@+id/myview"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_margin="20dp"
    android:elevation="10dp"
    android:translationZ="1dp"
    android:text="阴影效果"
    android:gravity="center"
    android:background="@drawable/myrect" />

然后定义个xml(myrect.xml,该文件放到rec/drawable目录下)背景outline轮廓(背景轮廓决定了默认的阴影形状):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#ffffff" />
    <corners android:radius="7dp" />
</shape>

当这个背景drawable作为视图的轮廓,视图投射出圆角阴影。提供一个自定义的轮廓,可以覆盖默认视图阴影的形状。

效果图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值