setShadowLayer
是 Android 中用于給視圖添加陰影的方法。然而,這個方法本身并不提供直接設置陰影角度的參數。它主要接受以下三個參數:
radius
: 陰影的半徑。值越大,陰影的范圍越廣。dx
: 陰影在 X 軸上的偏移量。正值會使陰影向右偏移,負值會使陰影向左偏移。dy
: 陰影在 Y 軸上的偏移量。正值會使陰影向下偏移,負值會使陰影向上偏移。雖然 setShadowLayer
不能直接設置陰影角度,但你可以通過一些技巧來實現改變陰影角度的效果。一種方法是使用 Canvas
的 drawShadow
方法,但這通常需要更多的自定義繪制邏輯。另一種方法是使用多個不同半徑和偏移量的陰影層疊加在一起,以模擬不同角度的陰影效果。
這里有一個簡單的示例,展示了如何使用多個陰影層來模擬陰影角度的變化:
View view = findViewById(R.id.my_view);
// 創建一個 ShapeDrawable 作為陰影層
ShapeDrawable shadowLayer1 = new ShapeDrawable();
shadowLayer1.setStroke(new Paint());
shadowLayer1.getPaint().setColor(Color.BLACK);
shadowLayer1.getPaint().setAntiAlias(true);
shadowLayer1.setShadowLayer(5, 0, 0, Color.BLACK);
// 創建另一個 ShapeDrawable 作為陰影層
ShapeDrawable shadowLayer2 = new ShapeDrawable();
shadowLayer2.setStroke(new Paint());
shadowLayer2.getPaint().setColor(Color.BLACK);
shadowLayer2.getPaint().setAntiAlias(true);
shadowLayer2.setShadowLayer(3, 2, 2, Color.BLACK);
// 將兩個陰影層添加到視圖的頂層
view.setLayerType(View.LAYER_TYPE_ADDED, shadowLayer1);
view.setLayerType(View.LAYER_TYPE_ADDED, shadowLayer2);
在這個示例中,我們創建了兩個 ShapeDrawable
對象作為陰影層,并使用 setShadowLayer
方法為它們設置了不同的半徑和偏移量。然后,我們將這兩個陰影層添加到視圖的頂層,以模擬不同角度的陰影效果。你可以根據需要調整這些參數,以實現你想要的效果。