成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何通過 View 設置陰影

移動開發 Android
從Android 5.0(API級別21)開始,View提供了一個名為“elevation”的屬性,用于設置陰影的大小。

從Android 5.0(API級別21)開始,View提供了一個名為“elevation”的屬性,用于設置陰影的大小。這個屬性可以通過XML或代碼來設置。注意,陰影的大小與View的Z值(elevation)和translationZ屬性有關。Z值由elevation和translationZ共同決定,通常elevation用于靜態陰影,而translationZ用于動畫。

xml設置:

<View  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:elevation="10dp" />

代碼設置:

view.setElevation(20);
//或
view.setTranslationZ(20);

在Material Design 設計規范中,存在兩個光源,一個是點光源, 一個是環境光,兩種光源共同作用,形成View的陰影效果。默認情況下,陰影是黑色的,然而很多時候我們想讓陰影顏色與 View 本身的顏色一致,達到更好地視覺效果。Android貼心地考慮到這一點,為我們提供了API:setOutlineAmbientShadowColor和setOutlineSpotShadowColor。開發者可以通過 xml 或 代碼改變陰影的顏色。

「setOutlineAmbientShadowColor」

  • 當view 的Z 值或者 elevation 值為正數時,設置環境陰影顏色
  • 默認陰影是黑色、不透明的,因此陰影的強度在不同顏色的不同視圖之間是一致的
  • 最終環境陰影的不透明度是(陰影投射器高度、outlineAmbientShadowColor的alpha通道(通常為不透明)和R.attr.ambientShadowAlpha 主題屬性)的函數

xml設置:

android:outlineAmbientShadowColor="#FFAAAA" 

代碼設置:

view.setOutlineAmbientShadowColor(mContext.getResources().getColor(R.color.ambient_shadow_color));

「setOutlineSpotShadowColor」

  • 當view 的Z 值或者 elevation 值為正數時,設置點陰影顏色
  • 默認陰影是黑色、不透明的,因此陰影的強度在不同顏色的不同視圖之間是一致的
  • 最終點陰影的不透明度是(陰影投射器高度、outlineAmbientShadowColor的alpha通道(通常為不透明)和R.attr.ambientShadowAlpha 主題屬性)的函數

xml設置:

android:outlineSpotShadowColor="#BAFDCE" 

代碼設置:

view.setOutlineSpotShadowColor(mContext.getResources().getColor(R.color.spot_shadow_color));

設置陰影的其他方案:

  • 使用自定義視圖和draw方法:如果你想創建更復雜的陰影效果,可以通過擴展View類并重寫onDraw方法來實現。在這個方法中,你可以使用Canvas的drawRect、drawPath等方法來繪制陰影。
public class ShadowView extends View {  
    private Paint paint;  
    private int shadowColor = Color.BLACK;  
    private float shadowRadius = 2f;  
    private float shadowOffset = -1f;  
    private float shadowOpacity = 0.9f;  
  
    public ShadowView(Context context) {  
        super(context);  
        init();  
    }  
  
    private void init() {  
        paint = new Paint();  
        paint.setAntiAlias(true);  
        paint.setStyle(Paint.Style.FILL);  
    }  
  
    @Override  
    protected void onDraw(Canvas canvas) {  
        super.onDraw(canvas);  
        paint.setColor(shadowColor);  
        canvas.drawRect(getPaddingLeft(), getHeight() - shadowOffset, getWidth() - getPaddingRight(), getHeight(), paint);  
    }  
}
  • 使用第三方庫:有些第三方庫可以幫助你更容易地給View添加陰影效果,例如CardView和Material Design庫。這些庫通常提供了更豐富的陰影選項,如顏色、大小和模糊半徑等。
  • 使用9-PatchDrawable:創建一個包含陰影的9-PatchDrawable資源,并將其作為View的背景。這種方法適用于固定大小的陰影,例如在按鈕或卡片上添加陰影。
責任編輯:趙寧寧 來源: 沐雨花飛蝶
相關推薦

2010-05-24 12:23:35

2022-03-11 07:22:20

CSS陰影基礎前端

2011-03-14 14:19:52

VMware ViewiPadApp Store

2011-08-02 15:07:43

組策略群集用戶賬戶

2011-08-22 13:52:20

iPhone開發View

2013-05-14 09:41:14

虛擬化桌面虛擬化

2019-02-20 09:50:48

互聯網裁員職場

2010-07-21 09:33:09

VMware View

2010-09-25 16:17:42

2010-09-29 15:28:44

DHCP端口

2009-05-14 09:19:50

微軟Windows 7操作系統

2022-06-23 06:42:06

CSSJS 監聽

2010-03-05 13:40:29

Android Vie

2009-09-17 09:22:23

CCNA考試CCNA

2019-02-12 09:00:00

DockerSourcegraph

2011-08-02 18:25:04

Web遠程管理服務器

2022-05-17 08:53:26

TPS性能測試

2019-02-25 20:00:09

私有云公共云云平臺

2011-04-26 09:54:04

激光筆投影儀

2011-09-06 09:06:24

VMware View小型企業
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日噜噜噜夜夜爽爽狠狠视频97 | 日韩欧美一区二区三区免费观看 | 一区二区在线不卡 | 精品一区在线免费观看 | 欧美一级欧美一级在线播放 | 国产精品国产 | 免费精品 | 国产激情视频网 | 午夜激情视频在线 | 中文字幕视频在线观看免费 | 久久99蜜桃综合影院免费观看 | 亚洲一区二区三区福利 | 日韩91| 亚洲精品白浆高清久久久久久 | 一级免费毛片 | 91精品一区| 亚洲一区日韩 | 亚洲国产aⅴ精品 | 粉嫩国产精品一区二区在线观看 | 国产精品美女久久久久久不卡 | 中文在线一区二区 | 久久精品国产一区二区三区 | 欧美精品99| 天天操夜夜看 | 午夜欧美a级理论片915影院 | 在线天堂免费中文字幕视频 | 一级黄色片在线看 | 欧美成人免费电影 | 精品国产乱码一区二区三区 | 91精品国产92 | 日韩在线精品 | 国产一区二区三区四区 | 国产区在线视频 | 欧美国产一区二区三区 | 2018天天干天天操 | 精品久久久久一区二区国产 | 精品粉嫩超白一线天av | 涩涩鲁亚洲精品一区二区 | 日韩欧美视频网站 | 日本特黄a级高清免费大片 成年人黄色小视频 | 日本黄色不卡视频 |