形状を作成するために必要なステップ。キャンバスを使用して最初から影を付けた長方形?
長方形の描画に使用されるペイントにシャドウレイヤーを追加しても、成功しませんでした。
ビットマップは必要ありません。レイヤータイプをLAYER_TYPE_SOFTWARE
に設定するだけで、元のアプローチが機能しました。
public class TestShapeShadow extends View
{
Paint paint;
public TestShapeShadow(Context context)
{
super(context);
Paint = new Paint(Paint.ANTI_ALIAS_FLAG);
Paint.setShadowLayer(12, 0, 0, Color.YELLOW);
// Important for certain APIs
setLayerType(LAYER_TYPE_SOFTWARE, Paint);
}
@Override
protected void onDraw(Canvas canvas)
{
canvas.drawRect(20, 20, 100, 100, Paint);
}
}
作成します。パス、それにいくつかの要素を追加
blurMaskFilterをPaintに設定します
dx、dy shadowオフセットでパスを描く
マスクフィルターの設定を解除
なしでもう一度パスを描きます。オフセット