一、设置阴影
在 Android 5.0 以后,可以通过 xml 或 Java代码 的方式给 View 添加阴影
// 方式一:xml 设置
android:elevation="10dp"
// 或
android:translationZ="10dp"
// 方式二:java 代码设置
view.setElevation(20);
// 或
view.setTranslationZ(20);
二、更改阴影颜色
在Android Material Design 系统中,存在两个光源,一个是点光源, 一个是环境光,两种光源共同作用,形成view的阴影效果。默认情况下,阴影是黑色的,然而很多时候我们想让阴影颜色与 view 本身的颜色一致,达到更好地视觉效果。Android贴心地考虑到这一点,为我们提供了API:setOutlineAmbientShadowColor和setOutlineSpotShadowColor。开发者可以通过 xml 或 Java 代码改变阴影的颜色
setOutlineAmbientShadowColor
翻译:
1、当view 的Z 值或者 elevation 值为正数时,设置环境阴影颜色
2、默认阴影是黑色、不透明的,因此阴影的强度在不同颜色的不同视图之间是一致的
3、最终环境阴影的不透明度是(阴影投射器高度、outlineAmbientShadowColor的alpha通道(通常为不透明)和R.attr.ambientShadowAlpha 主题属性)的函数
setOutlineSpotShadowColor
1、当view 的Z 值或者 elevation 值为正数时,设置点阴影颜色
2、默认阴影是黑色、不透明的,因此阴影的强度在不同颜色的不同视图之间是一致的
3、最终点阴影的不透明度是(阴影投射器高度、outlineAmbientShadowColor的alpha通道(通常为不透明)和R.attr.ambientShadowAlpha 主题属性)的函数
使用方法:
// 通过xml设置
android:outlineAmbientShadowColor="#FFAAAA" // 环境阴影
android:outlineSpotShadowColor="#BAFDCE" // 点阴影
// 通过代码设置
view.setOutlineAmbientShadowColor(mContext.getResources().getColor(R.color.ambient_shadow_color));// 环境阴影
view.setOutlineSpotShadowColor(mContext.getResources().getColor(R.color.spot_shadow_color));// 点阴影
网友评论