En las aplicaciones móviles el flujo de trabajo del componente Image es un poco diferente del flujo de trabajo en las aplicaciones web. Este artículo describe en detalle cómo utilizar el componente Image en una aplicación móvil. En los elementos que se repiten, como los elementos de List y Grid la carga de los componentes Image del modelo de datos no es inequívoca y requiere un determinado procedimiento de carga mediante el BP.

Image uso de componentes en elementos repetitivos (List/Grid)

Veamos un ejemplo en el que tenemos la tabla de vuelos y cada objeto de vuelo tiene su propia portada representada por el ImageFile campo [file].

0_dataModel

Imaginemos que la lista de vuelos se representa con el componente List componente. Cada elemento del List componente - es un Card componente que contiene Image y algunos otros componentes para mostrar la información relevante de los vuelos. En el diseñador de interfaz de usuario se ve de la siguiente manera:

uiux

En primer lugar Data Source tiene que ser especificado para el componente padre (List en este caso).

01_select_from_model

Para cargar los datos de la base de datos al Image componente, necesitamos crear un nuevo proceso de negocio para el Image componente.

02_openBP

El BP requerido comienza con la creación de un elemento de imagen en la aplicación, a saber, el onCreate trigger. En primer lugar, es necesario recibir el objeto del modelo de datos correspondiente a la imagen dada. Para ello, se pueden utilizar los datos que ya recibe el elemento padre (List en este caso). Para obtener los datos de un List, se utiliza el bloque List Get Data se utiliza el bloque

03_bp_1

La lógica del BP que estamos construyendo es la siguiente: si uno de los Data elementos del array (flight objeto modelo) tiene un identificador (ID) igual a Record IDentonces hemos encontrado el elemento de la tabla de vuelo que necesitamos. Entonces, el archivo de imagen ID se toma del objeto modelo de vuelo y se carga en el componente Imagen con el Widget ID.

Para iterar sobre todos los elementos del Data array, se utiliza el bloque For each loop y, en el cuerpo del bucle, se expande cada elemento de la matriz Data se expande utilizando el bloque Expand Flight bloque. Si Flight ID = Record IDentonces se toma el ImageFile se toma el identificador del archivo y se carga el objeto archivo utilizando el Server request GET /_files/:id/download/ bloque. A continuación se muestra un ejemplo del BP correspondiente.

03_bp_2

En el siguiente paso, el archivo de imagen se expande utilizando el bloque Expand file para pasar la matriz de bytes como entrada al bloque Image Update Properties del bloque Data del bloque. También es necesario especificar el Widget ID de un elemento de imagen específico en la hoja, pasándole el valor del bloque onCreate al principio del BP. El resultado de la última parte del BP se muestra en el siguiente ejemplo:

03_bp_3

Al final el bloque Break Loop se utiliza para no iterar sobre los elementos restantes del array en vano.

break loop

Carga de una imagen desde el sistema de archivos del smartphone del usuario

Consideremos un ejemplo de carga de un avatar de perfil de usuario. La interfaz web consiste en una imagen y un botón que lanza el BP, y tiene este aspecto:

11_ui

A continuación, el BP correspondiente permite al usuario seleccionar los archivos de su dispositivo con el uso de Select Files bloque. Y si los archivos fueron seleccionados con éxito, se toma el elemento con index = 0 es tomado. El BP correspondiente se ve así:

12_bp_1

El elemento de archivo resultante del Files array debe ser subido al servidor de la aplicación web para su posterior uso (Server request POST /_files/). Si la solicitud tiene éxito, el objeto archivo a la salida del bloque Server request POST /_files/ se pasa a la entrada del bloque Expand file para obtener un Bytes Arrayque se pasa a la entrada del bloque Image Update Properties en la propiedad Data propiedad.

13_bp_2

Was this article helpful?

AppMaster.io 101 Curso intensivo

10 Módulos
2 Semanas

¿No sabe por dónde empezar? Ponte en marcha con nuestro curso intensivo para principiantes y explora AppMaster de la A a la Z.

Inicio de curso
Development it’s so easy with AppMaster!

Necesitas más ayuda?

Resuelva cualquier problema con la ayuda de nuestros expertos. Ahorre tiempo y concéntrese en crear sus aplicaciones.

headphones

Soporte de contacto

Cuéntenos su problema y le encontraremos una solución.

message

Chat comunitario

Discutir preguntas con otros usuarios en nuestro chat.

Únete a la Comunidad