一、設置陰影
在 Android 5.0 以后,可以通過 xml 或 Java代碼 的方式給 View 添加陰影
// 方式一:xml 設置
android:elevation="10dp"
// 或
android:translationZ="10dp"
// 方式二:java 代碼設置
view.setElevation(20);
// 或
view.setTranslationZ(20);
二、更改陰影顏色
在Android Material Design 系統(tǒng)中,存在兩個光源,一個是點光源, 一個是環(huán)境光,兩種光源共同作用,形成view的陰影效果。默認情況下,陰影是黑色的,然而很多時候我們想讓陰影顏色與 view 本身的顏色一致,達到更好地視覺效果。Android貼心地考慮到這一點,為我們提供了API:setOutlineAmbientShadowColor和setOutlineSpotShadowColor。開發(fā)者可以通過 xml 或 Java 代碼改變陰影的顏色
setOutlineAmbientShadowColor
翻譯:
1、當view 的Z 值或者 elevation 值為正數(shù)時,設置環(huán)境陰影顏色
2、默認陰影是黑色、不透明的,因此陰影的強度在不同顏色的不同視圖之間是一致的
3、最終環(huán)境陰影的不透明度是(陰影投射器高度、outlineAmbientShadowColor的alpha通道(通常為不透明)和R.attr.ambientShadowAlpha 主題屬性)的函數(shù)
setOutlineSpotShadowColor
1、當view 的Z 值或者 elevation 值為正數(shù)時,設置點陰影顏色
2、默認陰影是黑色、不透明的,因此陰影的強度在不同顏色的不同視圖之間是一致的
3、最終點陰影的不透明度是(陰影投射器高度、outlineAmbientShadowColor的alpha通道(通常為不透明)和R.attr.ambientShadowAlpha 主題屬性)的函數(shù)
使用方法:
// 通過xml設置
android:outlineAmbientShadowColor="#FFAAAA" // 環(huán)境陰影
android:outlineSpotShadowColor="#BAFDCE" // 點陰影
// 通過代碼設置
view.setOutlineAmbientShadowColor(mContext.getResources().getColor(R.color.ambient_shadow_color));// 環(huán)境陰影
view.setOutlineSpotShadowColor(mContext.getResources().getColor(R.color.spot_shadow_color));// 點陰影