布局阴影shadow的制作
最近的项目,因为是和书籍有关,所以UI和我商量时问我
能不能在书架显示的给每本书(item)加一下阴影,我说
可以啊,因为CardView有显示阴影的属性,应该很方便
.但是她给我看了效果图后,我就感觉有点蛋疼了.因为
她的效果是只有右边和下边有阴影效果,而CardView
却四周都有,所以CardView就被排除了.最后我就上网
搜了下解决办法,发现也有一些有关shadow的自定义
控件,但是我自己觉得只是阴影用一个自定义控件
有点不太好,所以就找了其他方法,最后发现用
layer-list可以做到,随后就用的这个.
首先说下layer-list是什么?
layer-list是图层列表,是一个drawable图形,放在
drawable目录下的资源文件.
layer-list的原理?
layer-list的原理类似RelativeLayout(或者
FrameLayout)也是一层层的叠加,后添加的会覆盖先
添加的.在layer-list中可以通过控制后添加图层距
离最底部图层的左上右下的四个边距等属性,得到不同
的显示效果.这也解释了上面的图层列表,可以通过上面
我的实现
所以我就用这种方式来实现阴影效果.下面用灰色布局,
上面用白布局,然后右边和下面进行偏移就行了.下面我
来贴下我的代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle"
android:dither="true">
<corners android:radius="2dp" />
<solid android:color="#6ccc" />
</shape>
</item>
<item android:bottom="2dp" android:right="2dp">
<shape
android:shape="rectangle"
android:dither="true">
<corners android:radius="2dp" />
<solid android:color="@android:color/white" />
<padding
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp" />
</shape>
</item>
</layer-list>
本人菜鸟一枚,欢迎大家进行指教!!!