Как устранить края рисунка при использовании PorterDuff,DST_OUT

(Android) я пытаюсь использовать DST_OUT, чтобы удалить предыдущий рисунок, чтобы получить аналогичный эффект стирания, но результат всегда будет оставлять ребро. Я не знаю, как устранить это, кто может мне помочь.

private void init(){
    paint = new Paint();
    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_round);
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
    setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}


@Override
protected void onDraw(Canvas canvas) {
    canvas.drawBitmap(bitmap, 200, 500, null); //this is the source.

    canvas.drawBitmap(bitmap, 0, 0, null);
    canvas.drawBitmap(bitmap, 0, 0, paint);
}

Результат:

результат

0 ответов

Другие вопросы по тегам