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