ループ内のclipPathのサイズを増やしています。また、ループの内側には別のループがあり、これを使用してアルファを下げて描画するために使用するクリップパスをさらにいくつか作成して、トランジション効果を取得します。ただし、clipPathのサイズが大きくなると、遷移が遅くなり、遅れます。
こんな感じです
int size = 5;
Paint p1 = new Paint();
Path path = new Path();
for (int i = 0; i < 20; i++) {
path.addCircle(centerX, centerY, size, Path.Direction.CCW);
canvas.clipPath(path);
canvas.drawBitmap(bmp2, 0, 0, null);
path.reset();
int incr = size;
while (p1.getAlpha() != 0) {
incr -= 1;
p1.setAlpha(p1.getAlpha() - 5);
path.addCircle(centerX, centerY, incr, Path.Direction.CCW);
canvas.clipPath(path, Op.UNION);
canvas.drawBitmap(bmp2, 0, 0, p1);
path.reset();
}
size += 10;
}
望ましい結果
これは悪いアプローチだと思いますが、私が考えることができるのはこれだけです。