LinearLayout/RelativeLayout圆角带阴影效果实现

这篇文章的方案在图片需要顶边展示的时候无法去除图片尖角,如有类似需求请戳 

圆角阴影布局的几种实现及分析

需求应用场景如下:


LinearLayout/RelativeLayout圆角带阴影效果实现_第1张图片
需求

我们知道android5.0以上,我们可以通过cardView实现, 在gradle中添加cardview依赖,使用cardView实现,比较简单.但是我们开发中可能遇到这样的场景,以前的项目是用LinearLayout或者Relativelayout布局的,怎么办,于是你需要往下看:

首先5.0以上,android新加入了elevation属性,我们可以通过这个属性实现阴影,同时通过shape控制圆角;

那么5.0以下呢,没有这个属性,那我们就得自己画了,通过layer-list图层可以解决这个问题

下面是三种实现的效果


LinearLayout/RelativeLayout圆角带阴影效果实现_第2张图片
三种效果

现在上代码:

第一种,Linearlayout,5.0以下

Linearlayout

LinearLayout/RelativeLayout圆角带阴影效果实现_第3张图片
LinearLayout5.0以下布局
LinearLayout/RelativeLayout圆角带阴影效果实现_第4张图片
shadow_shape.xml(1)
LinearLayout/RelativeLayout圆角带阴影效果实现_第5张图片
shadow_shape.xml(2)

第二种,Linearlayout5.0以上

LinearLayout/RelativeLayout圆角带阴影效果实现_第6张图片
LinearLayout5.0以上布局
LinearLayout/RelativeLayout圆角带阴影效果实现_第7张图片
ll_shadow_shape.xml

第三种,CardView阴影效果

导入

gradle导入cardview

布局

LinearLayout/RelativeLayout圆角带阴影效果实现_第8张图片
cardview圆角阴影

因为这篇文章不是markdown编辑的,所以贴代码不太方便,需要代码的请戳git:

LinearLayout/RelativeLayout阴影效果

你可能感兴趣的:(LinearLayout/RelativeLayout圆角带阴影效果实现)