View-给布局,控件添加阴影效果

一.使用属性 elevation

 

在Material Design主题当中给UI元素引入了高度的概念,视图的高度由属性Z来表示,决定了阴影的视觉效果,Z越大,阴影就越大且越柔和。但是Z值并不会影响视图的大小。

 

二.使用 layer-list

 

layer-list 的大致原理类似 RelativeLayout(或者FrameLayout) ,也是一层层的叠加 ,后添加的会覆盖先添加的。在 layer-list 中可以通过 控制后添加图层距离最底部图层的 左上右下的四个边距等属性,得到不同的显示效果。

我们可以通过 每一层通过设置gradient来渐变颜色,显示阴影效果

 

xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

 

<item

android:left="0dp"

android:top="0dp"

android:right="5dp"

android:bottom="5dp">

<shape android:shape="rectangle" >

<gradient

android:angle="180"

android:endColor="#00000000"

android:startColor="#ff000000" />

shape>

item>

<item

android:left="5dp"

android:top="0dp"

android:right="5dp"

android:bottom="0dp">

<shape android:shape="rectangle" >

<gradient

android:angle="270"

android:endColor="#00000000"

android:startColor="#ff000000" />

shape>

item>

 

<item

android:left="5dp"

android:top="0dp"

android:right="0dp"

android:bottom="5dp">

<shape android:shape="rectangle" >

<gradient

android:angle="360"

android:endColor="#00000000"

android:startColor="#ff000000" />

shape>

item>

 

 

 

<item

android:left="5dp"

android:top="0dp"

android:right="5dp"

android:bottom="5dp">

<shape android:shape="rectangle" >

<solid android:color="@android:color/white"/>

shape>

item>

layer-list>

 

三.最简单,找UI给切个带阴影的图片做背景,做成.9图片,控制子控件的显示位置。

 

四.android sdk提供了一个新的控件布局,CardView卡片布局,有阴影效果,点击查看。

 

 

https://download.csdn.net/download/zmesky/10417864

你可能感兴趣的:(Android)