Как нарисовать bitmap с прозрачным фоном?

У меня есть две картинки .bmp: фон и нло.

Я хочу нарисовать на Canvas сначала фон, потом нло:

class GameView(context: Context?, attributeSet: AttributeSet) : View(context, attributeSet) {
    private val background = BitmapFactory.decodeResource(resources, R.drawable.background)

    private val ufo = Ufo(resources, R.drawable.ufo_easy, Rect(10, 10, 200, 100))

    override fun onDraw(canvas: Canvas) {
        canvas.drawBitmap(background, null, Rect(0, 0, width, height), null)
        ufo.draw(canvas)
    }
}

класс Ufo:

class Ufo(resources: Resources, @DrawableRes bitmapId: Int, private val rect: Rect) {
    private val bitmap: Bitmap = BitmapFactory.decodeResource(resources, bitmapId)

    fun draw(canvas: Canvas) {
        canvas.drawBitmap(bitmap, null, rect, null)
    }
}

Но когда я запускаю это, у меня получается так: введите сюда описание изображения

У нло белый фон хотя на самом деле он прозрачный: введите сюда описание изображения

Как сделать у нло прозрачный фон?


Ответы (1 шт):

Автор решения: timur

Я сохранил нло в формате png и всё заработало :)

→ Ссылка