Compartir vía


Visualización de imágenes con Xamarin.iOS

Agregar imágenes a la aplicación requiere dos pasos: en primer lugar, agregue las imágenes al proyecto; después, agregue controles y código para mostrarlos en una pantalla. Consulte el artículo Trabajar con imágenes para obtener una cobertura más detallada del control de imágenes en Xamarin.iOS.

Agregar imágenes a la aplicación

Las imágenes se pueden agregar a cualquier carpeta de la solución de Visual Studio para Mac y, si la acción de compilación está establecida en Contenido, el archivo se incluirá con la aplicación y se podrá mostrar.

Visual Studio para Mac también admite un directorio especial llamado Recursos que también puede contener archivos de imagen. Los archivos de la carpeta Resources deben tener la Acción de compilación establecida en BundleResource.

En esta captura de pantalla se muestran las opciones de Acción de compilación que aparecen cuando se hace clic con el botón derecho en un archivo:

Menú Acción de compilación

Visual Studio para Mac normalmente elegirá el correctoacción de compilación automáticamente, pero debe tener en cuenta esta configuración, especialmente si mueve archivos en el proyecto.

Agregar un archivo de imagen

Para agregar un archivo de imagen al proyecto, haga clic con el botón derecho en el proyecto y elija Agregar archivos...

Menú Agregar archivos...

Seleccione la imagen (o imágenes) que desea incluir en el cuadro de diálogo de archivo estándar. La acción de compilación predeterminada para las imágenes será BundleResource – no invalide este valor a menos que tenga un motivo específico.

Cuadro de diálogo Agregar archivos

La imagen se agregará al proyecto y estará disponible para cargarse y mostrarse en el código. En esta captura de pantalla se muestra una imagen agregada a un proyecto de aplicación de iOS:

Imagen en el proyecto

¿Qué es el directorio de recursos?

Los archivos colocados en el directorio Resources se tratan de forma diferente a los archivos – normales que el contenido de la carpeta Recursos se copia en la raíz de la aplicación y se puede hacer referencia desde allí en el código. Esto puede ser útil por muchas razones:

  • Almacenar las imágenes configuradas en las propiedades de la aplicación’, como las imágenes de inicio y los iconos de aplicación predeterminados.
  • Almacenar otras imágenes y archivos por separado del código, por lo que son más fáciles de administrar (los subdirectorios se conservan cuando se copia el contenido del directorio de recursos).

El Directorio de recursos es especialmente útil en un proyecto de biblioteca, ya que el código puede suponer que esas imágenes se copiarán en la raíz de la aplicación que consume, lo que facilita la escritura de bibliotecas de código compartidas que requieren imágenes, sonidos, vídeos, XML u otros archivos.

El directorio Recursos debe tener el nombre y todos los archivos deben tener la acción de compilación establecida en BundleResource.

Visualización de la imagen

En el Diseñador de iOS, use un vista de imágenes para mostrar una imagen o una serie animada de imágenes. A continuación se muestra el icono Vista de imagen del cuadro de herramientas:

Icono ImageView en el cuadro de herramientas.

Arrastre el Vista de imagen desde el cuadro de herramientas hasta el controlador de vista. A continuación, en Vista de imagen > Imagen la lista desplegable proporcionará una lista de todos los archivos de imagen disponibles en el proyecto. Seleccione cualquiera de estos para agregarlo a la vista de imagen.

ImageView en el cuadro de herramientas

Mostrar la imagen mediante programación

Dado que SF Monkey.jpg se encuentra en la raíz del directorioRecursos, estará disponible en tiempo de ejecución en la raíz del conjunto de aplicaciones. Para mostrar esta imagen en un control de vista de imagen, use el código siguiente:

imageview1.Image = UIImage.FromBundle("SF Monkey.png");

Si hubiéramos colocado la imagen en /Resources/Pics/SF Monkey.jpg, el código incluiría la carpeta Pics en la ruta de acceso:

imageview1.Image = UIImage.FromBundle("Pics/SF Monkey.png");

Las referencias a archivos de recursos nunca necesitan incluir la carpeta Recursos.