0

背景画像が最初に描かれたキャンバスがあります。次に、背景の上に別の画像が描画されます。画面上を移動する Gradient オブジェクトがあります。グラデーションで使用されるペイントの Xfermode は、paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); として設定されます。

効果は機能しますが、背景画像にも適用されます。背景画像が上部のマスクの影響を受けないようにするにはどうすればよいですか?

4

1 に答える 1

0

キャンバス全体にペイントが適用されます。背景は Gradient オブジェクトと同じ Canvas を使用して描画されるため、もちろんカスタム Xfermode を使用すると背景に影響します!

考えられる解決策の 1 つは、背景と前景を別々の Bitmap オブジェクトでバックアップされた 2 つの異なる Canvas オブジェクトに分けてから、Photoshop で行うようにレイヤーを結合することです。少し前に、これを行うサンプル コードを StackOverflow に投稿しました。リンクは次のとおりです。

https://stackoverflow.com/a/10370828/1350375

于 2012-05-04T21:12:05.680 に答える