Flutter — Widgets de activos

2024-02-05T18:00:00-05:00 | 3 minutos de lectura | Actualizado en 2025-01-24T07:42:46-05:00

jaimetellezb
Flutter — Widgets de activos

Tabla de Contenido

Introducción

En esta oportunidad veremos sobre los widgets que administran activos (AssetBundle), los que podemos usar para mostrar imágenes (Imagen) y los de mostrar íconos (Icon).

AssetBundle

Con este widget podemos acceder a recursos, como imágenes y cadenas, que se pueden usar en una aplicación Flutter. El acceso a estos recursos es asíncrono para que se puedan cargar mejor cuando son de una red externa o desde los archivos locales para no bloquear la aplicación.

rootBundle

Es el paquete raíz de los recursos que se empaquetaron al compilar la aplicación. Para agregar recursos debe hacerse en el archivo pubspec.yaml en la sección assets dentro de Flutter.

name: my_app
flutter:
  assets:
   - assets/images/dash-fainting.gif
   - assets/images/dashatars.png

Configuración

Debemos agregar la configuración anterior, además de eso se deben crear las carpetas correspondientes, es decir, la carpeta assets en la raíz del proyecto y dentro la carpeta images que va a contener las imágenes.

config

Image

Es un widget que muestra una imagen. Tiene varios constructores para distintas formas de cargar la imagen.

Constructores

  • Image.new este constructor se apoya en la clase ImageProvider para obtener una imagen.
  • Image.asset se obtiene la imagen de un AssetBundle por medio de una llave o clave.
  • Image.network con este constructor podemos obtener una imagen por medio de una URL.
  • Image.file con este constructor podemos obtener una imagen de un archivo, utilizando la clase File.
  • Image.memory con este constructor podemos obtener una imagen por medio de la clase Uint8List.

Formatos

Los formatos de imagen admitidos son: JPE, PNG, GIF, GIF animado, WebP, WebP animado, BMP, WBPM.

Errores

En caso de que no encuentre la URL de la imagen o el formato es incorrecto, algún tipo de error, este widget nos brinda un método para nosotros manejar estas situaciones errorBuilder el cual devuelve un widget.

Ejemplo

Vamos a usar algunos de los constructores que tiene Image.

// Usando el constructor Image.new y la clase AssetImage
const Image(
  height: 200,
  width: 300,
  image: AssetImage('assets/images/dash-fainting.gif'),
),
// Usando el constructor Image.asset
Image.asset(
  'assets/images/dashatars.png',
  height: 200,
  width: 300,
),
// Usando el constructor Image.network
Image.network(
  url,
  height: 200,
  width: 300,
),
const SizedBox(
  height: 20,
),
// Usando el constructor Image.network con errorBuilder
Image.network(
  errorBuilder: (context, error, stackTrace) => Text(
    '$error',
    style: const TextStyle(color: Colors.red),
  ),
  formatInvalid,
),

demo

Icon

Es un widget por medio del cual podemos hacer uso de íconos, apoyándose en la clase IconData donde se puede especificar el FontFamily. Inicialmente podemos usar los íconos predefinidos de Material Icons . Para esto recordemos que es necesario tener activada la opción en el pubspec.yaml .

name: my_app
flutter:
  uses-material-design: true

Ejemplo

Veremos unos ejemplos de íconos utilizando algunas de sus propiedades.

  • icon que es de tipo IconData, es el ícono como tal que queremos mostrar.
  • color el color que va tener el relleno del ícono.
  • size el tamaño en pixeles del ícono.
  • shadows si queremos agregar un sombreado.
const Icon(
  Icons.warning,
  color: Colors.yellow,
  size: 40.0,
  shadows: [Shadow(blurRadius: 20, offset: Offset(10, 10))],
),
const Icon(
  Icons.info,
  color: Colors.blue,
  size: 35.0,
),
const Icon(
  Icons.cancel,
  color: Colors.red,
  size: 35.0,
),

demo2


Conclusión

Como pudimos ver para usar assets dentro de nuestro proyecto debemos hacer un par de configuraciones iniciales pero resulta ser bastante sencillo en la práctica, también tenemos opciones de acceder a recursos en la web, unos widgets bastante interesantes y con buen uso en las aplicaciones de Flutter.

¡Gracias por leer!

Referencias

© 2022 - 2025 jaimetellezb - Compartir guías y tutoriales de programación.

🌱 Powered by Hugo with theme Dream.

Sobre mí

alt

Ingeniero de software

Hola, bienvenidos a mi blog sobre guías y tutoriales de programación.

Aquí podrás encontrar guías y tutoriales sobre algunos temas de tecnología en general. La idea es poder ayudar a que ciertas cosas como configuraciones de nuevas herramientas sean más fáciles de abordar y utilizar. También pequeños proyectos donde se usen diferentes tecnologías como ejemplo.

Enlaces sociales