Para mostrar un archivo jpg, png etc. disponemos en la clase Canvas de un método llamado drawBitmap.
Mostrar el contenido de un archivo jpg en la pantalla sabiendo que tiene un tamaño de 250 píxeles de ancho por 200 de alto.
1 - Creamos un proyecto llamado: Proyecto042
Borramos el TextView que agrega automáticamente el Android Studio y definimos el id del ConstraintLayout con el valor: layout1:

Descargar de internet una imagen y redimensionarla a 250*200 píxeles. Copiar dicho archivo a la carpeta res/mipmap-mdpi de nuestro proyecto:

Ahora codificamos la clase donde se encuentra toda la lógica:
package com.tutorialesprogramacionya.proyecto042
import android.content.Context
import android.graphics.BitmapFactory
import android.graphics.Canvas
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val fondo = Lienzo(this)
val layout1=findViewById<ConstraintLayout>(R.id.layout1)
layout1.addView(fondo)
}
internal inner class Lienzo(context: Context) : View(context) {
override fun onDraw(canvas: Canvas) {
canvas.drawRGB(0, 0, 255)
val bmp = BitmapFactory.decodeResource(resources, R.mipmap.imagen1)
canvas.drawBitmap(bmp, 0f, 0f, null)
}
}
}
Para recuperar la imagen del archivo de la carpeta res/mipmap-mdpi debemos utilizar el método decodeResource:
val bmp = BitmapFactory.decodeResource(resources, R.mipmap.imagen1)
Una vez que tenemos creado el objeto de la clase Bitmap procedemos a posicionar la imagen en la pantalla del dispositivo:
canvas.drawBitmap(bmp, 0f, 0f, null)
La vista previa de la aplicación es:

Este proyecto lo puede descargar en un zip desde este enlace: proyecto042.zip