Альфа градиент на изображении не на изображении - PullRequest
0 голосов
/ 17 апреля 2019

Можно ли поставить альфу на просмотр изображения?Не на изображении, а непосредственно на виде?

В данный момент мне нужно фотошопить изображение, и я не хочу редактировать каждое изображение.

Оно должно выглядеть так:

enter image description here

1 Ответ

0 голосов
/ 18 апреля 2019

Вы можете подделать эффект, который пытаетесь достичь, используя:

android:foreground="@drawable/image_overlay"

или

imageView.setForeground(imageOverlayDrawable);

Это на самом деле не сделает изображение прозрачным, но если выиметь статичный сплошной цвет фона, этого должно быть достаточно, чтобы создать иллюзию смешивания изображения с фоном.

Если это не вариант, попробуйте что-то вроде этого:

// Get the image from wherever it lives and create a Bitmap of it
...

// Draw the image to a canvas so that we can modify it
Canvas canvas = new Canvas(image);
Paint imagePaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(imageBitmap, 0, 0, imagePaint);

// Create a paint to draw the overlay with
PorterDuffXfermode porterDuffXfermode = new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY);
Paint overlayPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
overlayPaint.setXfermode(porterDuffXfermode);

// The overlay in this case needs to be a white gradient (where fully opaque means that
// the image will be left untouched and fully transparent will completely erase the image)
Bitmap overlayBitmap = BitmapFactory.decodeResource(getResources(), R.id.drawable.gradient_overlay, Bitmap.Config.ARGB_8888);

// Apply the overlay to create the alpha effect
canvas.drawBitmap(overlayBitmap, 0, 0, overlayPaint);

// Update the ImageView
imageView.setImageBitmap(bitmap);
...