Проблема с устройствами Android версии p в маскировании изображения от рисования - PullRequest
0 голосов
/ 27 мая 2019

Я работаю над маскирующим изображением с цветными фигурами. мой код работает на всех устройствах, кроме Android-пирог версии устройства, форма не применяется должным образом.

Я пытался изменить PorterDuffXfermode, но он не работает

мой метод маскировки изображения

public void makeMaskImage(ImageView mImageView, Drawable drawable, int color{
    color_maskimage.setVisibility(View.VISIBLE);
    image_maskimage.setVisibility(View.GONE);
    mask = drawableToBitmap(drawable);

    Bitmap original = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(original);
    canvas.drawColor(color);
    maskbackgroundcolor = color;
    background_img.setBackgroundResource(0);
    background_img.setBackgroundColor(color);
    Bitmap maskedbitmap = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas mCanvas = new Canvas(maskedbitmap);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));

    mCanvas.drawBitmap(original, 0, 0, null);
    mCanvas.drawBitmap(mask, 0, 0, paint);
    Drawable d = new BitmapDrawable(getResources(), maskedbitmap);
    mImageView.setBackground(d);
}

Выход Android пирога

Ниже добычи Андорид Орео

...