翻译:Shadow effect with custom shapes
使用自定义Shape很容易就能给视图增加一个阴影。
方法是首先生成一个背景阴影层,然后内容层放在上面。
但是你还需要按顺序显示它们来生成阴影效果。
例如:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item android:right="4dp" android:bottom="4dp">
<!-- SHADOW LAYER -->
</item>
<item android:left="4dp" android:top="4dp">
<!-- CONTENT LAYER-->
</item>
</layer-list>
</item>
</selector>
你可以控制阴影的方向并通过上下左右参数设置偏移量。
这是我们的应用WhoSaid中的一个例子:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:left="4dp" android:top="4dp">
<shape>
<solid android:color="#ff58bb52" />
<corners android:radius="30dip"/>
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list>
<!-- SHADOW LAYER -->
<item android:left="4dp" android:top="4dp">
<shape>
<solid android:color="#66000000" />
<corners android:radius="30dip"/>
</shape>
</item>
<!-- CONTENT LAYER -->
<item android:bottom="4dp" android:right="4dp">
<shape>
<solid android:color="#ff58bb52" />
<corners android:radius="30dip"/>
</shape>
</item>
</layer-list>
</item>
</selector>
在我们的例子中,当按钮被按下时,我们取消了阴影来产生反馈效果。
别忘了你可以修改距离和颜色来产生新效果。例如你可以使用渐变方式来生成阴影层。