1

画像の一部を消去しようとしているので、カスタムを作成しているImageViewので、消去のために次のペイントを使用して描画しています

    mPaint = new Paint();
    mPaint.setAntiAlias(true);
    mPaint.setDither(true);
    mPaint.setColor(Color.TRANSPARENT);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setStrokeJoin(Paint.Join.ROUND);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
    mPaint.setStrokeWidth(30);
    mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

Android 4.1で正常に動作する画像をクリアするように設定XferModePorterDuff.Mode.CLEARていますが、Android 2.3でこれをテストすると、背景色ではなく黒い線が描画され、ハードウェアアクセラレーションも無効になりました。

Android 2.3でこれが機能しない理由を誰かが説明できますか

4

1 に答える 1

0

同様の問題があり、super.onDraw(canvas) を呼び出す前に Canvas.clipRect を使用して修正しました。

この質問は私を助けてくれました: Androidでxfermodeを使用して画像からラウンドをクリップ

于 2013-04-04T09:49:42.980 に答える