まだ描画されていない領域にのみ Rectangle を描画する必要があります。
たとえば、 drawText を呼び出して何かを書き、その上に Rect を描画すると、テキストの背後にあるはずです。
その場合、最初に Rect を描画してから Text を書き込むことはできません。
XFermodeについて読みましたが、使い方がわかりません...
ペイント オブジェクトをPorterDuffXfermode
ブレンド モードで使用するように設定できますMode.MULTIPLY
。
import android.graphics.PorterDuffXfermode;
import android.graphics.PorterDuff.Mode;
private void setupPaint(Paint paint) {
paint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY));
}
private void clearXfermode(Paint paint) {
paint.setXfermode(null);
}
私の意見では、最初に四角形を描画してからテキストを描画する方がパフォーマンスが向上しますが、これが不可能な場合はPorterDuffXfermode
.