You are on page 1of 214

Calendario astronómico Abril 2019

« Marzo 2019

Mayo 2019 »

1 17.93% 03:18 16:04 6:13 18:13 12:00

2 11.28% 04:05 16:44 6:13 18:12 11:59

3 5.98% 04:52 17:23 6:13 18:11 11:58

4 2.26% 05:38 18:01 6:13 18:11 11:58

5 0.28% 06:25 18:40 6:13 18:10 11:57

Luna nueva (Iluminación 0%) - 3:51 (Hora local)

6 0.21% 07:13 19:21 6:13 18:10 11:57

7 2.14% 08:03 20:04 6:13 18:09 11:56


8 6.08% 08:55 20:49 6:13 18:08 11:55

9 11.98% 09:49 21:39 6:13 18:08 11:55

10 19.67% 10:45 22:32 6:13 18:07 11:54

11 28.88% 11:42 23:29 6:13 18:06 11:53

12 39.26% 12:39 ---- 6:13 18:06 11:53

13 50.36% 13:36 00:27 6:13 18:05 11:52

14 61.64% 14:30 01:28 6:13 18:05 11:52

15 72.51% 15:22 02:28 6:13 18:04 11:51

16 82.32% 16:11 03:28 6:13 18:04 11:51

17 90.41% 16:59 04:25 6:13 18:03 11:50

18 96.24% 17:46 05:23 6:13 18:03 11:50


19 99.43% 18:33 06:20 6:13 18:02 11:49

Luna llena (Iluminación 100%) - 6:11 (Hora local)

20 99.83% 19:21 07:16 6:13 18:01 11:48

21 97.57% 20:09 08:12 6:13 18:01 11:48

22 92.99% 21:00 09:09 6:14 18:00 11:46

23 86.54% 21:51 10:03 6:14 18:00 11:46

24 78.69% 22:42 10:56 6:14 17:59 11:45

25 69.90% 23:33 11:47 6:14 17:59 11:45

26 60.56% ---- 12:34 6:14 17:58 11:44

27 51.01% 00:23 13:19 6:14 17:58 11:44

28 41.55% 01:12 14:01 6:14 17:58 11:44


29 32.43% 01:59 14:42 6:14 17:57 11:43

30 23.92% 02:46 15:21 6:14 17:57 11:43

« Marzo 2019

Mayo 2019 »

Otras fechas:
Calendario astronómico Mayo 2019

« Abril 2019

Junio 2019 »

1 16.28% 03:33 15:59 6:15 17:56 11:41

2 9.79% 04:19 16:38 6:15 17:56 11:41

3 4.73% 05:07 17:18 6:15 17:55 11:40

4 1.39% 05:57 18:00 6:15 17:55 11:40


Luna nueva (Iluminación 0%) - 17:47 (Hora local)

5 0.02% 06:48 18:45 6:15 17:55 11:40

6 0.82% 07:43 19:35 6:15 17:54 11:39

7 3.89% 08:39 20:27 6:16 17:54 11:38

8 9.19% 09:38 21:24 6:16 17:54 11:38

9 16.56% 10:35 22:22 6:16 17:53 11:37

10 25.68% 11:33 23:23 6:16 17:53 11:37

11 36.11% 12:26 ---- 6:16 17:53 11:37

12 47.33% 13:18 00:21 6:16 17:52 11:36

13 58.75% 14:06 01:20 6:17 17:52 11:35

14 69.78% 14:53 02:16 6:17 17:52 11:35


15 79.78% 15:39 03:12 6:17 17:52 11:35

16 88.21% 16:24 04:07 6:17 17:51 11:34

17 94.56% 17:11 05:03 6:18 17:51 11:33

18 98.54% 17:59 05:59 6:18 17:51 11:33

Luna llena (Iluminación 100%) - 16:09 (Hora local)

19 99.99% 18:48 06:55 6:18 17:51 11:33

20 99.00% 19:40 07:51 6:18 17:51 11:33

21 95.78% 20:31 08:45 6:18 17:51 11:33

22 90.65% 21:23 09:38 6:19 17:50 11:31

23 83.99% 22:14 10:27 6:19 17:50 11:31

24 76.16% 23:04 11:14 6:19 17:50 11:31


25 67.50% 23:53 11:57 6:20 17:50 11:30

26 58.32% ---- 12:38 6:20 17:50 11:30

27 48.89% 00:39 13:18 6:20 17:50 11:30

28 39.49% 01:26 13:56 6:20 17:50 11:30

29 30.38% 02:12 14:34 6:21 17:50 11:29

30 21.85% 02:59 15:13 6:21 17:50 11:29

31 14.23% 03:48 15:54 6:21 17:50 11:29

« Abril 2019

Junio 2019 »

Otras fechas:
Calendario astronómico Junio 2019

« Mayo 2019

Julio 2019 »
1 7.88% 04:38 16:38 6:21 17:50 11:29

2 3.18% 05:32 17:26 6:22 17:50 11:28

3 0.50% 06:29 18:18 6:22 17:50 11:28

Luna nueva (Iluminación 0%) - 5:01 (Hora local)

4 0.16% 07:28 19:15 6:22 17:50 11:28

5 2.35% 08:27 20:14 6:23 17:50 11:27

6 7.06% 09:27 21:16 6:23 17:50 11:27

7 14.11% 10:23 22:16 6:23 17:50 11:27

8 23.10% 11:16 23:16 6:23 17:50 11:27

9 33.51% 12:05 ---- 6:24 17:50 11:26


10 44.74% 12:52 00:12 6:24 17:50 11:26

11 56.15% 13:37 01:08 6:24 17:50 11:26

12 67.17% 14:21 02:02 6:25 17:50 11:25

13 77.21% 15:06 02:56 6:25 17:51 11:26

14 85.81% 15:52 03:50 6:25 17:51 11:26

15 92.57% 16:40 04:45 6:25 17:51 11:26

16 97.21% 17:30 05:40 6:26 17:51 11:25

17 99.62% 18:21 06:34 6:26 17:51 11:25

Luna llena (Iluminación 100%) - 3:29 (Hora local)

18 99.82% 19:14 07:28 6:26 17:51 11:25

19 97.91% 20:05 08:19 6:26 17:52 11:26


20 94.12% 20:56 09:07 6:27 17:52 11:25

21 88.69% 21:46 09:53 6:27 17:52 11:25

22 81.90% 22:33 10:34 6:27 17:52 11:25

23 74.02% 23:20 11:15 6:27 17:52 11:25

24 65.33% ---- 11:53 6:27 17:53 11:26

25 56.09% 00:05 12:30 6:28 17:53 11:25

26 46.55% 00:51 13:09 6:28 17:53 11:25

27 36.98% 01:39 13:48 6:28 17:53 11:25

28 27.70% 02:27 14:30 6:28 17:54 11:26

29 19.06% 03:19 15:16 6:28 17:54 11:26

30 11.49% 04:14 16:06 6:29 17:54 11:25


« Mayo 2019

Julio 2019 »

Otras fechas:
Calendario astronómico Julio 2019

« Junio 2019

Agosto 2019 »

1 5.47% 05:12 17:01 6:29 17:54 11:25

2 1.50% 06:13 18:00 6:29 17:55 11:26

Luna nueva (Iluminación 0%) - 14:13 (Hora local)

3 0.00% 07:14 19:03 6:29 17:55 11:26

4 1.27% 08:13 20:05 6:29 17:55 11:26

5 5.33% 09:09 21:07 6:29 17:55 11:26


6 11.97% 10:01 22:06 6:29 17:56 11:27

7 20.71% 10:50 23:03 6:29 17:56 11:27

8 30.96% 11:37 23:58 6:30 17:56 11:26

9 42.04% 12:21 ---- 6:30 17:56 11:26

10 53.31% 13:05 00:52 6:30 17:57 11:27

11 64.20% 13:50 01:46 6:30 17:57 11:27

12 74.22% 14:37 02:39 6:30 17:57 11:27

13 82.94% 15:25 03:34 6:30 17:57 11:27

14 90.06% 16:15 04:28 6:30 17:58 11:28

15 95.34% 17:07 05:21 6:30 17:58 11:28

16 98.66% 17:58 06:13 6:30 17:58 11:28


Luna llena (Iluminación 100%) - 16:38 (Hora local)

17 99.97% 18:49 07:02 6:30 17:58 11:28

18 99.33% 19:40 07:48 6:30 17:59 11:29

19 96.83% 20:27 08:31 6:30 17:59 11:29

20 92.62% 21:15 09:12 6:29 17:59 11:30

21 86.91% 22:00 09:51 6:29 17:59 11:30

22 79.89% 22:46 10:28 6:29 18:00 11:31

23 71.79% 23:32 11:06 6:29 18:00 11:31

24 62.84% ---- 11:44 6:29 18:00 11:31

25 53.29% 00:18 12:23 6:29 18:00 11:31

26 43.40% 01:08 13:06 6:29 18:01 11:32


27 33.50% 02:00 13:53 6:28 18:01 11:33

28 23.98% 02:56 14:45 6:28 18:01 11:33

29 15.32% 03:55 15:42 6:28 18:01 11:33

30 8.09% 04:55 16:43 6:28 18:01 11:33

31 2.88% 05:56 17:47 6:28 18:02 11:34

« Junio 2019

Agosto 2019 »

Otras fechas:
Calendario astronómico Agosto 2019

« Julio 2019

Septiembre 2019 »

1 0.25% 06:55 18:51 6:27 18:02 11:35


2 0.54% 07:51 19:53 6:27 18:02 11:35

3 3.82% 08:42 20:53 6:27 18:02 11:35

4 9.86% 09:31 21:51 6:26 18:02 11:36

5 18.14% 10:17 22:47 6:26 18:02 11:36

6 28.00% 11:03 23:42 6:26 18:03 11:37

7 38.75% 11:49 ---- 6:25 18:03 11:38

8 49.74% 12:35 00:36 6:25 18:03 11:38

9 60.44% 13:23 01:30 6:25 18:03 11:38

10 70.41% 14:12 02:24 6:24 18:03 11:39

11 79.29% 15:03 03:17 6:24 18:03 11:39

12 86.80% 15:54 04:09 6:24 18:03 11:39


13 92.74% 16:45 04:58 6:23 18:04 11:41

14 96.97% 17:35 05:45 6:23 18:04 11:41

15 99.39% 18:23 06:29 6:22 18:04 11:42

Luna llena (Iluminación 100%) - 7:29 (Hora local)

16 99.97% 19:11 07:11 6:22 18:04 11:42

17 98.73% 19:57 07:50 6:21 18:04 11:43

18 95.74% 20:42 08:27 6:21 18:04 11:43

19 91.11% 21:28 09:05 6:20 18:04 11:44

20 84.97% 22:14 09:42 6:20 18:04 11:44

21 77.51% 23:01 10:20 6:19 18:04 11:45

22 68.93% 23:51 11:01 6:19 18:04 11:45


23 59.45% ---- 11:45 6:18 18:04 11:46

24 49.35% 00:44 12:33 6:18 18:04 11:46

25 38.97% 01:40 13:27 6:17 18:04 11:47

26 28.73% 02:38 14:24 6:17 18:04 11:47

27 19.16% 03:38 15:26 6:16 18:04 11:48

28 10.89% 04:37 16:29 6:16 18:04 11:48

29 4.58% 05:34 17:33 6:15 18:04 11:49

30 0.85% 06:28 18:35 6:14 18:04 11:50

Luna nueva (Iluminación 0%) - 5:37 (Hora local)

31 0.11% 07:20 19:36 6:14 18:04 11:50

« Julio 2019

Septiembre 2019 »
Otras fechas:
Calendario astronómico Septiembre 2019

« Agosto 2019

Octubre 2019 »

1 2.45% 08:08 20:34 6:13 18:04 11:51

2 7.65% 08:56 21:32 6:13 18:04 11:51

3 15.18% 09:43 22:28 6:12 18:04 11:52

4 24.39% 10:30 23:24 6:11 18:04 11:53

5 34.58% 11:19 ---- 6:11 18:04 11:53

6 45.15% 12:08 00:19 6:10 18:04 11:54

7 55.59% 12:59 01:13 6:09 18:04 11:55

8 65.51% 13:50 02:05 6:09 18:04 11:55


9 74.59% 14:41 02:56 6:08 18:04 11:56

10 82.56% 15:32 03:43 6:07 18:04 11:57

11 89.22% 16:20 04:28 6:07 18:04 11:57

12 94.40% 17:08 05:10 6:06 18:04 11:58

13 97.94% 17:55 05:50 6:05 18:04 11:59

Luna llena (Iluminación 100%) - 23:32 (Hora local)

14 99.76% 18:40 06:28 6:05 18:04 11:59

15 99.79% 19:26 07:05 6:04 18:04 12:00

16 98.01% 20:11 07:43 6:03 18:04 12:01

17 94.46% 20:58 08:20 6:03 18:04 12:01

18 89.22% 21:47 09:00 6:02 18:04 12:02


19 82.42% 22:37 09:42 6:01 18:04 12:03

20 74.23% 23:31 10:28 6:01 18:04 12:03

21 64.87% ---- 11:18 6:00 18:04 12:04

22 54.64% 00:27 12:12 5:59 18:04 12:05

23 43.91% 01:24 13:10 5:59 18:04 12:05

24 33.13% 02:22 14:11 5:58 18:04 12:06

25 22.86% 03:18 15:13 5:57 18:04 12:07

26 13.77% 04:12 16:15 5:56 18:04 12:08

27 6.54% 05:05 17:16 5:56 18:04 12:08

28 1.81% 05:54 18:15 5:55 18:04 12:09

Luna nueva (Iluminación 0%) - 13:25 (Hora local)


29 0.01% 06:43 19:14 5:54 18:04 12:10

30 1.26% 07:31 20:12 5:54 18:04 12:10

« Agosto 2019

Octubre 2019 »

Otras fechas:
Calendario astronómico Octubre 2019

« Septiembre 2019

Noviembre 2019 »

1 5.37% 08:19 21:11 5:53 18:04 12:11

2 11.85% 09:10 22:08 5:52 18:04 12:12

3 20.11% 10:00 23:05 5:52 18:04 12:12

4 29.51% 10:52 24:00 5:51 18:04 12:13


5 39.49% 11:45 ---- 5:50 18:04 12:14

6 49.59% 12:36 00:52 5:50 18:04 12:14

7 59.43% 13:28 01:41 5:49 18:04 12:15

8 68.72% 14:17 02:26 5:49 18:04 12:15

9 77.19% 15:05 03:09 5:48 18:04 12:16

10 84.61% 15:52 03:49 5:47 18:04 12:17

11 90.79% 16:37 04:27 5:47 18:04 12:17

12 95.51% 17:23 05:05 5:46 18:04 12:18

13 98.61% 18:09 05:43 5:46 18:04 12:18

Luna llena (Iluminación 100%) - 16:08 (Hora local)

14 99.95% 18:56 06:20 5:45 18:04 12:19


15 99.43% 19:44 07:00 5:44 18:05 12:21

16 97.00% 20:34 07:41 5:44 18:05 12:21

17 92.66% 21:28 08:26 5:43 18:05 12:22

18 86.52% 22:22 09:14 5:43 18:05 12:22

19 78.71% 23:18 10:06 5:42 18:05 12:23

20 69.50% ---- 11:02 5:42 18:05 12:23

21 59.20% 00:14 12:00 5:41 18:05 12:24

22 48.22% 01:09 13:00 5:41 18:05 12:24

23 37.07% 02:02 13:59 5:40 18:06 12:26

24 26.33% 02:53 14:59 5:40 18:06 12:26

25 16.67% 03:42 15:57 5:39 18:06 12:27


26 8.74% 04:30 16:55 5:39 18:06 12:27

27 3.16% 05:18 17:54 5:38 18:06 12:28

Luna nueva (Iluminación 0%) - 22:36 (Hora local)

28 0.33% 06:06 18:52 5:38 18:07 12:29

29 0.39% 06:55 19:52 5:37 18:07 12:30

30 3.20% 07:47 20:50 5:37 18:07 12:30

31 8.39% 08:40 21:48 5:37 18:07 12:30

« Septiembre 2019

Noviembre 2019 »

Otras fechas:
Componentes de la interfaz de usuario - App Inventor para Android

Tabla de contenido
 Botón
 Caja
 Selector de fechas
 Imagen
 Etiqueta
 ListPicker
 Vista de la lista
 notificar
 ContraseñaTextBox
 Pantalla
 Deslizador
 Hilandero
 Caja de texto
 Selector de tiempo
 WebViewer

Botón
Botón con la capacidad de detectar clics. Se pueden cambiar muchos aspectos de su apariencia, así como si se puede hacer clic ( Enabled), se puede
cambiar en el Diseñador o en el Editor de bloques.

Propiedades
BackgroundColor
Devuelve el color de fondo del botón.
Enabled
Si está configurado, el usuario puede tocar la casilla de verificación para provocar la acción.
FontBold
Si está configurado, el texto del botón se muestra en negrita.
FontItalic
Si está configurado, el texto del botón se muestra en cursiva.
FontSize
Tamaño de punto para el texto del botón.
FontTypeface (solo diseñador)
Familia de fuentes para el texto del botón.
Height
Altura del botón (tamaño y).
Image
Imagen para mostrar en el botón.
Shape (solo diseñador)
Especifica la forma del botón (predeterminado, redondeado, rectangular, ovalado). La forma no será visible si se muestra una imagen.
ShowFeedback
Especifica si se debe mostrar una retroalimentación visual para un botón que como imagen como fondo.
Text
Texto para mostrar en el botón.
TextAlignment (solo diseñador)
Izquierda, centro, o derecha.
TextColor
Color para el texto del botón.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
Ancho del botón (tamaño x).
Eventos
Click()
El usuario pulsó y soltó el botón.
GotFocus()
Indica el cursor movido sobre el botón, por lo que ahora es posible hacer clic en él.
LongClick()
El usuario mantuvo pulsado el botón.
LostFocus()
Indica el cursor alejado del botón, por lo que ya no es posible hacer clic en él.
TouchDown()
Indica que el botón fue presionado hacia abajo.
TouchUp()
Indica que se ha soltado un botón.

Caja

Los componentes de la casilla de verificación pueden detectar las pulsaciones de los usuarios y pueden cambiar su estado booleano en respuesta.

Un componente de casilla de verificación genera un evento cuando el usuario lo toca. Hay muchas propiedades que afectan su apariencia que se pueden
configurar en el Diseñador o en el Editor de bloques.

Propiedades
BackgroundColor
Color para el fondo de la casilla de verificación.
Checked
Verdadero si la casilla está marcada, falso de lo contrario.
Enabled
Si está configurado, el usuario puede tocar la casilla de verificación para provocar la acción.
Height
Marque la altura de la casilla (tamaño y).
Width
Ancho de la casilla de verificación (tamaño x).
Text
Texto para mostrar en la casilla de verificación.
TextColor
Color para el texto de la casilla de verificación.
Visible
Si está configurado, la casilla de verificación es visible.

Eventos
Click()
Usuario tocó y soltó la casilla de verificación.
GotFocus()
La casilla de verificación se convirtió en el componente enfocado.
LostFocus()
La casilla de verificación dejó de ser el componente enfocado.

Selector de fechas

Un botón que, al hacer clic en, inicia un cuadro de diálogo emergente para permitir al usuario seleccionar una fecha.
Nota: La fecha y la hora se manipulan utilizando métodos en el componente Reloj .
Propiedades
BackgroundColor
Devuelve el color de fondo del botón.
Day
el día del mes que se seleccionó por última vez con el Selector de fecha.
Enabled
Si está configurado, el usuario puede tocar la casilla de verificación para provocar la acción.
FontBold
Si está configurado, el texto del botón se muestra en negrita.
FontItalic
Si está configurado, el texto del botón se muestra en cursiva.
FontSize
Tamaño de punto para el texto del botón.
FontTypeface (solo diseñador)
Familia de fuentes para el texto del botón.
Height
Image
Imagen para mostrar en el botón.
Instant
Instante de la fecha. Este instante puede usarse con el componente Reloj para la documentación de fecha, conversión y matriculación.

Month

el número del mes que se eligió por última vez con el Selector de fecha. Tenga en cuenta que los meses comienzan en 1 = enero, 12 = diciembre.
MonthInText
Devuelve el nombre del mes que se eligió por última vez con el Selector de fecha, en formato de texto.
Shape (solo diseñador)
Especifica la forma del botón (predeterminado, redondeado, rectangular, ovalado). La forma no será visible si se muestra una imagen.
ShowFeedback
Especifica si se debe mostrar una retroalimentación visual para un botón que como imagen como fondo.
Text
Texto para mostrar en el botón.
TextAlignment (solo diseñador)
Izquierda, centro, o derecha.
TextColor
Color para el texto del botón.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
Year

el año que se eligió por última vez con el Selector de fechas

Eventos
AfterDateSet()
Evento que se ejecuta después de que el usuario elige una fecha en el cuadro de diálogo
GotFocus()
Indica el cursor movido sobre el botón, por lo que ahora es posible hacer clic en él.
LostFocus()
Indica el cursor alejado del botón, por lo que ya no es posible hacer clic en él.
TouchDown()
Indica que el botón fue presionado hacia abajo.
TouchUp()
Indica que se ha soltado un botón.
Métodos
LaunchPicker()
Inicia la ventana emergente DatePicker.
SetDateToDisplay(number year, number month, number day)
Permite al usuario configurar la fecha que se mostrará cuando se abra el selector de fecha. Los valores válidos para el campo del mes son 1-12 y 1-
31 para el campo del día.
SetDateToDisplayFromInstant(InstantInTime instant)
Permite al instante configurar el año, el mes y el día que se mostrará cuando se abra el selector de fecha. Los instantes se utilizan en los
componentes Clock, DatePicker y TimePicker.

Imagen

Componente para la visualización de imágenes. La imagen a mostrar, y otros aspectos de la apariencia de la imagen, se pueden especificar en el Diseñador
o en el Editor de bloques.

Propiedades
Animation
Esta es una forma limitada de animación que puede adjuntar una pequeña cantidad de tipos de movimiento a las imágenes. Los movimientos
permitidos son ScrollRightSlow, ScrollRight, ScrollRightFast, ScrollLeftSlow, ScrollLeft, ScrollLeftFast y Stop
Height
Picture

Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
Eventos
ninguna

Métodos
ninguna

Etiqueta

Las etiquetas son componentes utilizados para mostrar texto.


Una etiqueta muestra el texto especificado por la Text propiedad. Otras propiedades, todas las cuales se pueden configurar en el Diseñador o en el Editor de
bloques, controlan la apariencia y la ubicación del texto.

Propiedades
BackgroundColor
Color para el fondo de la etiqueta.
FontBold
Si se establece, el texto de la etiqueta se muestra en negrita.
FontItalic
Si se establece, el texto de la etiqueta se muestra en cursiva.
FontSize
Tamaño de punto para el texto de la etiqueta.
FontTypeface
Familia de fuentes para el texto de la etiqueta.
HasMargins
Informa si la etiqueta aparece o no con márgenes. Los cuatro márgenes (izquierdo, derecho, superior, inferior) son los mismos. Esta propiedad no
tiene efecto en el diseñador, donde las etiquetas siempre se muestran con márgenes.
HTMLFormat
Si es verdadero, establece el texto de la etiqueta en formato html, de lo contrario es un formato de texto simple. Nota: No todo el HTML es
compatible.
Height
Altura de la etiqueta (tamaño y).
Width
Ancho de la etiqueta (tamaño x).
Text
Texto para mostrar en la etiqueta.
TextAlignment
Izquierda, centro, o derecha.
TextColor
Color para el texto de la etiqueta.
Visible
Si se establece, la etiqueta es visible.

ListPicker
Un botón que, al hacer clic en, muestra una lista de textos para que el usuario pueda elegir. Los textos pueden especificarse a través del Diseñador o del
Editor de Bloques configurando la ElementsFromStringpropiedad en su concatenación separada por cadenas (por ejemplo, opción 1, opción 2, opción 3 ) o
configurando la Elementspropiedad a una Lista en el editor de Bloques.
Al establecer la propiedad ShowFilterBar en true, la lista se podrá buscar. Otras propiedades afectan a la apariencia del botón
( TextAlignment, BackgroundColor, etc.) y si se puede hacer clic en ( Enabled).

Propiedades
BackgroundColor
Devuelve el color de fondo del botón.
Elements
Lista de opciones para mostrar (como una lista)
ElementsFromString
Lista separada por comas de opciones para usar
Enabled
Si se puede tocar el ListPicker
FontBold (solo diseñador)
Si se establece, el texto del selector de lista se muestra en negrita.
FontItalic (solo diseñador)
Si se establece, el texto del selector de lista se muestra en cursiva.
FontSize (solo diseñador)
Tamaño en puntos para el texto del selector de lista.
FontTypeface (solo diseñador)
Familia de fuentes para el texto del selector de lista.
Height
Altura de la caja (tamaño y).
Image
Especifica la ruta de acceso de la imagen del botón. Si hay una imagen y un color de fondo, solo la imagen será visible.
Selection
El elemento seleccionado. Cuando es modificado directamente por el programador, la propiedad SelectionIndex también se cambia al primer
elemento en el ListPicker con el valor dado. Si el valor no aparece, SelectionIndex se establecerá en 0.
SelectionIndex
El índice del elemento seleccionado actualmente, comenzando en 1. Si no se selecciona ningún elemento, el valor será 0. Si se intenta establecer
esto en un número menor que 1 o mayor que el número de elementos en el Selector de lista, SelectionIndex se establecerá en 0, y la selección se
establecerá en el texto vacío.
Shape (solo diseñador)
Especifica la forma del botón (predeterminado, redondeado, rectangular, ovalado). La forma no será visible si se muestra una imagen.
ShowFeedback
Especifica si se debe mostrar una retroalimentación visual para un botón que como imagen como fondo.
ShowFilterBar
Devuelve el estado actual de ShowFilterBar indicando si la Barra de filtro de búsqueda se mostrará en ListPicker o no
Text
Título del texto para mostrar en el selector de lista.
TextAlignment (solo diseñador)
Izquierda, centro, o derecha.
TextColor
Color para el texto.
Title
Título opcional mostrado en la parte superior de la lista de opciones.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
Ancho de la caja (tamaño x).
ItemTextColor
El color del texto de los elementos ListPicker.
ItemBackgroundColor
El color de fondo de los elementos ListPicker.

Eventos
AfterPicking()
Evento que se generará después de que la actividad del selector devuelva su resultado y se hayan completado las propiedades.
BeforePicking()
Evento a elevar cuando se hace clic en el botón del componente o se muestra la lista usando el bloque Abrir. Este evento ocurre antes de que se
muestre la lista de elementos y se puede usar para preparar la lista antes de que se muestre.
GotFocus()
Indica el cursor movido sobre el botón, por lo que ahora es posible hacer clic en él.
LostFocus()
Indica el cursor alejado del botón, por lo que ya no es posible hacer clic en él.

Métodos
Open()
Abre el selector, como si el usuario hiciera clic en él.

Vista de la lista

Este es un componente visible que permite colocar una lista de elementos de texto en su pantalla para mostrar.
La lista se puede establecer usando la propiedad ElementsFromString o usando el bloque Elements en el editor de bloques.
Advertencia: este componente no funcionará correctamente en las pantallas que se pueden desplazar.

Propiedades
BackgroundColor
El color del fondo listview.
Elements
Lista de elementos de texto para construir su lista.
ElementsFromString
Cree una lista con una serie de elementos de texto separados por comas como: Queso, Fruta, Tocino, Rábano. Cada palabra antes de la coma será
un elemento de la lista.
Height
Determina la altura de la lista en la vista.
Selection
Devuelve el último texto seleccionado en el ListView.
SelectionIndex
El índice del elemento seleccionado actualmente, comenzando en 1. Si no se selecciona ningún elemento, el valor será 0. Si se intenta establecer
esto en un número menor que 1 o mayor que el número de elementos en el ListView, SelectionIndex se establecerá en 0, y la selección se
establecerá en el texto vacío.
ShowFilterBar
Establece la visibilidad de ShowFilterBar. Verdadero mostrará la barra, Falso lo ocultará.
TextColor
El color del texto de los elementos de la vista de lista.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
Determina el ancho de la lista en la vista.

Eventos
AfterPicking()
Evento simple que se genera después de que se haya elegido un elemento en la lista. El elemento seleccionado está disponible en la propiedad
Selección.

Métodos
ninguna

notificar

El componente Notifier muestra diálogos de alerta, mensajes y alertas temporales, y crea entradas de registro de Android a través de los siguientes métodos:

 ShowMessageDialog: muestra un mensaje que el usuario debe descartar presionando un botón.


 ShowChooseDialog: muestra un mensaje dos botones para permitir al usuario elegir una de las dos respuestas, por ejemplo, sí o no, después de lo
cual se genera el evento AfterChoosing.
 ShowTextDialog: permite al usuario ingresar texto en respuesta al mensaje, después de lo cual se genera el evento AfterTextInput.
 ShowAlert: muestra una alerta temporal que desaparece por sí sola al cabo de poco tiempo.
 ShowProgressDialog: muestra una alerta con un girador de carga que el usuario no puede descartar. Solo se puede descartar utilizando el bloque
DismissProgressDialog.
 DismissProgressDialog: descarta el cuadro de diálogo de progreso mostrado por ShowProgressDialog.
 LogError: registra un mensaje de error en el registro de Android.
 LogInfo: registra un mensaje de información en el registro de Android.
 LogWarning: registra un mensaje de advertencia en el registro de Android.
 Los mensajes en los diálogos (pero no la alerta) se pueden formatear usando las siguientes etiquetas HTML: <b>, <big>, <blockquote>, <br>, <cite>,
<dfn>, <div>, <em >, <small>, <strong>, <sub>, <sup>, <tt>. <u>
 También puede usar la etiqueta de fuente para especificar el color, por ejemplo, <font color = "blue">. Algunos de los nombres de colores disponibles
son aqua, negro, azul, fucsia, verde, gris, lima, granate, azul marino, oliva, púrpura, rojo, plata, verde azulado, blanco y amarillo.

Propiedades
BackgroundColor
Especifica el color de fondo de las alertas (no de los cuadros de diálogo).
NotifierLength (solo diseñador)
especifica el período de tiempo que se muestra la alerta, ya sea "corto" o "largo".
TextColor
Especifica el color del texto para las alertas (no para los cuadros de diálogo).

Eventos
AfterChoosing(text choice)
Evento después de que el usuario haya realizado una selección para ShowChooseDialog.
AfterTextInput(text response)
Evento generado después de que el usuario haya respondido a ShowTextDialog.
ChoosingCanceled()
Evento generado cuando el usuario canceló ShowChooseDialog.
TextInputCanceled()
Evento generado cuando el usuario canceló ShowTextDialog.

Métodos
DismissProgressDialog()
Descartar un cuadro de diálogo de progreso mostrado anteriormente
LogError(text message)
Escribe un mensaje de error en el registro del sistema Android. Consulte la documentación de Google para Android sobre cómo acceder al registro.
LogInfo(text message)
Escribe un mensaje de información en el registro de Android.
LogWarning(text message)
Escribe un mensaje de advertencia en el registro de Android. Consulte la documentación de Google para Android sobre cómo acceder al registro.
ShowAlert(text notice)
Mostrar una notificación temporal
ShowChooseDialog(text message, text title, text button1Text, text button2Text, boolean cancelable)
Muestra un cuadro de diálogo con dos botones, desde el cual el usuario puede elegir. Si cancelable es verdadero, habrá un botón CANCEL
adicional. Al presionar un botón se levantará el evento AfterChoosing. El parámetro "opción" para Después de elegir será el texto del botón que se
presionó, o "Cancelar" si se presionó el botón CANCELAR.
ShowMessageDialog(text message, text title, text buttonText)
Muestra un cuadro de diálogo de alerta con un solo botón que descarta la alerta.
ShowProgressDialog(text message, text title)
Muestra un cuadro de diálogo con un título y un mensaje opcionales (use cadenas vacías si no se desean). Este cuadro de diálogo contiene un
artefacto giratorio para indicar que el programa está funcionando. No puede ser cancelado por el usuario, pero debe ser rechazado por el Programa
de App Inventor utilizando el bloque DismissProgressDialog.
ShowTextDialog(text message, text title, boolean cancelable)
Muestra un cuadro de diálogo donde el usuario puede ingresar texto, luego del cual se generará el evento AfterTextInput. Si cancelable es
verdadero, habrá un botón CANCEL adicional. La introducción de texto provocará el evento AfterTextInput. El parámetro de "respuesta" a
AfterTextInput será el texto que se ingresó, o "Cancelar" si se presionó el botón CANCELAR.
ContraseñaTextBox

Los usuarios ingresan contraseñas en un componente de cuadro de texto de contraseña, que oculta el texto que se ha ingresado.
Un cuadro de texto de contraseña es el mismo que el TextBox componente ordinario , excepto que no muestra los caracteres escritos por el usuario.
Puede obtener o establecer el valor del texto en el cuadro con la Text propiedad. Si Text está en blanco, puede utilizar la Hint propiedad para proporcionar
al usuario una sugerencia de qué escribir. El Hint texto aparece como débil en la caja.

Los componentes del cuadro de texto de la contraseña se usan generalmente con un componente de botón. El usuario toca el botón después de ingresar el
texto.

Métodos
RequestFocus()
Establece el PasswordTextBox activo.

Propiedades
BackgroundColor
Color para el fondo del cuadro de texto.
Enabled
Si está configurado, el usuario puede ingresar una contraseña en el cuadro.
FontBold
Si está configurado, el texto se muestra en negrita.
FontItalic
Si está configurado, el texto se muestra en cursiva.
FontSize
Tamaño de punto para el texto.
FontTypeface
Familia de fuentes para el texto.
Height
Altura de la caja (tamaño y).
Width
Ancho de la caja (tamaño x).
TextAlignment
Izquierda, centro, o derecha.
TextColor
Color para el texto.
Hint
Pista de la contraseña.
PasswordVisible
Visibilidad de la contraseña.

Eventos
GotFocus()
La caja se convirtió en el componente enfocado.
LostFocus()
La caja ya no es el componente enfocado.

Pantalla

Componente de nivel superior que contiene todos los demás componentes en el programa

Propiedades
AboutScreen
Información sobre la pantalla. Aparece cuando se selecciona "Acerca de esta aplicación" en el menú del sistema. Úsalo para informar a los usuarios
sobre tu aplicación. En las aplicaciones de pantalla múltiple, cada pantalla tiene su propia información de pantalla.
AccentColor
Este es el color de acento utilizado para los toques de luz y otros acentos de interfaz de usuario en las versiones más recientes de Android. Los
componentes afectados por esta propiedad incluyen cuadros de diálogo creados por Notifier, DateTimePicker y otros.
ActionBar
De forma predeterminada, la barra de título coincidirá con las versiones anteriores de Android. Habilitar esta opción reemplazará la barra de título
predeterminada con una barra de acción para que coincida con las versiones más recientes de Android. La barra de acción puede ser estilizada
usando las propiedades de color primario y tema. ActionBar solo es compatible con temas que no sean "Classic".
AlignHorizontal
Un número que codifica cómo los contenidos de la pantalla se alinean horizontalmente. Las opciones son: 1 = alineado a la izquierda, 2 = centrado
horizontalmente, 3 = alineado a la derecha.
AlignVertical
Un número que codifica cómo se alinean verticalmente los contenidos de la disposición. Las opciones son: 1 = alineado en la parte superior, 2 =
centrado verticalmente, 3 = alineado en la parte inferior. La alineación vertical no tiene efecto si la pantalla es desplazable.
BackgroundColor
AppName (solo diseñador)

Este es el nombre para mostrar de la aplicación instalada en el teléfono. Si el Nombre de aplicación está en blanco, se establecerá el nombre del
proyecto cuando se construya el proyecto.
BackgroundImage
La imagen de fondo de la pantalla.
CloseScreenAnimation
La animación para cerrar la pantalla actual y volver a la pantalla anterior. Las opciones válidas son predeterminadas, desvanecimiento, zoom,
slidehorizontal, slidevertical y none
Height
Altura de la pantalla (tamaño y).
Icon (solo diseñador)
OpenScreenAnimation
La animación para cambiar a otra pantalla. Las opciones válidas son predeterminadas, desvanecimiento, zoom, slidehorizontal, slidevertical y none
PrimaryColor
Este es el color primario utilizado como parte del tema de Android, incluido el coloreado de la barra de título de la pantalla.
PrimaryColorDark
Este es el color primario que se usa cuando se especifica que la propiedad Tema es Oscura. Se aplica a una serie de elementos, incluida la barra de
título de la pantalla.
ScreenOrientation
La orientación de pantalla solicitada, especificada como un valor de texto. Los valores de uso común son horizontal, vertical, sensor, usuario y no
especificados. Consulte la documentación del desarrollador de Android para ActivityInfo.Screen_Orientation para obtener una lista completa de las
configuraciones posibles.
Scrollable
Cuando está marcado, habrá una barra de desplazamiento vertical en la pantalla, y la altura de la aplicación puede exceder la altura física del
dispositivo. Cuando no se selecciona, la altura de la aplicación se limita a la altura del dispositivo.
ShowListsAsJson (solo diseñador)
Si es falso, las listas se convertirán a cadenas usando la notación Lisp, es decir, como símbolos separados por espacios, por ejemplo, (a 1 b2
(cd)). Si es verdadero, las listas aparecerán como en Json o Python, por ejemplo, ["a", 1, "b", 2, ["c", "d"]]. Esta propiedad aparece solo en la Pantalla
1, y el valor de la Pantalla 1 determina el comportamiento de todas las pantallas. La propiedad por defecto es "falsa", lo que significa que el
programador de App Inventor debe establecerlo explícitamente en "verdadero" si se desea la sintaxis de JSON / Python. En algún momento en el
futuro, alteraremos el sistema para que los nuevos proyectos se creen con esta propiedad establecida en "verdadero" de forma predeterminada. Los
proyectos existentes no serán impactados. El programador de App Inventor también puede volver a establecerlo en "falso" en proyectos más nuevos
si lo desea.
ShowStatusBar
La barra de estado es la barra superior de la pantalla. Esta propiedad informa si la barra de estado es visible.
Sizing (solo diseñador)
Si se establece en fijo, los diseños de pantalla se crearán para una sola pantalla de tamaño fijo y se ajustarán automáticamente. Si se configura en
receptivo, los diseños de pantalla utilizarán la resolución real del dispositivo. Consulte la documentación sobre diseño responsivo en App Inventor
para obtener más información. Esta propiedad aparece solo en la Pantalla 1 y controla el tamaño de todas las pantallas en la aplicación.
Theme
Selecciona el tema para la aplicación. El tema solo se puede establecer en tiempo de compilación y el Acompañante aproximará los cambios durante
el desarrollo en vivo. Las opciones posibles son Classic, que es lo mismo que las versiones anteriores de App Inventor; Device Default, que
proporciona el mismo tema que la versión de Android que se ejecuta en el dispositivo y utiliza PrimaryColor para ActinBar y tiene botones de luz; El
texto de título en negro, que es el tema predeterminado del dispositivo pero con el texto del título en negro, y oscuro, que es una versión oscura del
tema predeterminado del dispositivo que utiliza PrimaryColorDark y tiene componentes de color gris oscuro.
TitleVisible
La barra de título es la barra gris superior en la pantalla. Esta propiedad informa si la barra de título es visible.
Title
El título de la forma, que aparece en la barra de título.
TutorialURL
Una URL que se abrirá en el panel lateral izquierdo (que se puede alternar una vez que está abierto). Esto está destinado a proyectos que tienen un
tutorial en línea como parte del proyecto. Por razones de seguridad, solo los tutoriales alojados en http://appinventor.mit.edu o enlazados desde
nuestro acortador de URL (http://appinv.us) pueden usarse aquí. Otras URLs serán ignoradas silenciosamente.
VersionCode (solo diseñador)
Un valor entero que debe incrementarse cada vez que se crea un nuevo Archivo de Paquete de Aplicaciones de Android (APK) para Google Play
Store.
VersionName (solo diseñador)
Una cadena que se puede cambiar para permitir a los usuarios de Google Play Store distinguir entre diferentes versiones de la aplicación.
Width
Ancho de la pantalla (tamaño x).
Eventos
BackPressed()
Botón de retroceso del dispositivo presionado.
ErrorOccurred(component component, text functionName, number errorNumber, text message)
Evento provocado cuando se produce un error. Sólo algunos errores elevarán esta condición. Para esos errores, el sistema mostrará una notificación
por defecto. Puede usar este controlador de eventos para prescribir un comportamiento de error diferente al predeterminado.
Initialize()
Pantalla de inicio
OtherScreenClosed(text otherScreenName, any result)
Evento provocado cuando otra pantalla se ha cerrado y el control ha regresado a esta pantalla.
PermissionDenied(component component, text functionName, text permissionName)
El evento se ejecuta para controlar cuando el usuario de la aplicación ha denegado un permiso necesario.
PermissionGranted(text permissionName)
Evento para controlar cuando el usuario de la aplicación ha otorgado un permiso necesario. Este evento solo se ejecuta cuando se concede un
permiso en respuesta al método AskForPermission.
ScreenOrientationChanged()
Orientación de la pantalla cambiada
Métodos
AskForPermission(text permissionName)
Solicite al usuario que otorgue acceso a un permiso confidencial, como ACCESS_FINE_LOCATION. Este bloque se usa normalmente como parte de
un PermissionDeniedevento para pedir permiso. Si el usuario concede permiso, PermissionGranted se ejecutará el evento. Si el usuario niega el
permiso, PermissionDeniedse ejecutará el evento.

HideKeyboard()
Ocultar el teclado virtual en pantalla.

Deslizador

Un control deslizante es una barra de progreso que agrega un pulgar que se puede arrastrar. Puede tocar el pulgar y arrastrar hacia la izquierda o hacia la
derecha para establecer la posición del control deslizante. A medida que se arrastra el control deslizante, se activará el evento PositionChanged, que informa
de la posición del control deslizante. La posición informada del control deslizante se puede usar para actualizar dinámicamente otro atributo de componente,
como el tamaño de fuente de un cuadro de texto o el radio de una bola.

Propiedades
ColorLeft
El color del deslizador a la izquierda del pulgar.
ColorRight
El color del deslizador a la izquierda del pulgar.
MaxValue
Establece el valor máximo del control deslizante. Cambiar el valor máximo también restablece la Posición del pulgar a la mitad entre el mínimo y el
(nuevo) máximo. Si el nuevo máximo es menor que el mínimo actual, tanto el mínimo como el máximo se ajustarán a este valor. La configuración de
MaxValue restablece la posición del pulgar a la mitad entre MinValue y MaxValue y señala el evento PositionChanged.
MinValue
Establece el valor mínimo del control deslizante. Al cambiar el valor mínimo, también se restablece la Posición del pulgar a la mitad entre el mínimo
(nuevo) y el máximo. Si el nuevo mínimo es mayor que el máximo actual, tanto el mínimo como el máximo se ajustarán a este valor. La configuración
de MinValue restablece la posición del pulgar a mitad de camino entre MinValue y MaxValue y señala el evento PositionChanged.
ThumbPosition
Establece la posición del control deslizante del pulgar. Si este valor es mayor que MaxValue, entonces se establecerá en el mismo valor que
MaxValue. Si este valor es menor que MinValue, entonces se establecerá en el mismo valor que MinValue.
ThumbEnabled
Establece si mostrar o no el control deslizante pulgar.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width

Eventos
PositionChanged(number thumbPosition)
Indica que la posición del control deslizante del pulgar ha cambiado.

Métodos

ninguna
Hilandero
Un componente giratorio que muestra una ventana emergente con una lista de elementos. Estos elementos se pueden configurar en el Diseñador o en el
Editor de bloques estableciendo la ElementsFromStringpropiedad en una concatenación separada por cadenas (por ejemplo, opción 1, opción 2, opción 3 ) o
estableciendo la Elementspropiedad en una Lista en el editor de Bloques. Los hilanderos se crean con el primer elemento ya seleccionado. Por lo tanto, al
seleccionarlo no se genera un evento After Picking. Por lo tanto, es útil hacer que el primer elemento Spinner no sea una opción como "Seleccionar desde
abajo ...".

Propiedades
Elements
devuelve una lista de elementos de texto para ser seleccionados.
ElementsFromString
establece la lista de Spinner a los elementos pasados en la cadena separada por comas
Height
Prompt
Texto con el título actual de la ventana Spinner.
Selection
Devuelve el elemento seleccionado actual en la ruleta.
SelectionIndex
El índice del elemento seleccionado actualmente, comenzando en 1. Si no se selecciona ningún elemento, el valor será 0.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width

Eventos
AfterSelecting(text selection)
Evento llamado después de que el usuario seleccione un elemento de la lista desplegable.
Métodos
DisplayDropdown()
muestra la lista desplegable para la selección, la misma acción que cuando el usuario hace clic en la rueda giratoria.

Caja de texto

Los usuarios ingresan texto en un componente de cuadro de texto.


El valor de texto inicial o ingresado por el usuario en un componente de cuadro de texto está en la Text propiedad. Si Text está en blanco, puede utilizar
la Hint propiedad para proporcionar al usuario una sugerencia de qué escribir. El Hint texto aparece como débil en la caja.
La MultiLine propiedad determina si el texto puede tener más de una línea. Para un cuadro de texto de una sola línea, el teclado se cerrará automáticamente
cuando el usuario presione la tecla Listo. Para cerrar el teclado para cuadros de texto de varias líneas, la aplicación debe usar el método HideKeyboard o
confiar en que el usuario presione la tecla Atrás.
La NumbersOnly propiedad restringe el teclado para aceptar solo entradas numéricas.
Otras propiedades afectan a la apariencia del cuadro de texto ( TextAlignment , BackgroundColor , etc.) y si se puede utilizar ( Enabled ).
Los cuadros de texto se usan generalmente con el Button componente, y el usuario hace clic en el botón cuando se completa la entrada de texto.
Si el texto ingresado por el usuario no debe mostrarse, use PasswordTextBox en su lugar.

Métodos
HideKeyboard()
Ocultar el teclado. Sólo los cuadros de texto multilínea necesitan esto. Los cuadros de texto de una sola línea cierran el teclado cuando los usuarios
presionan la tecla Listo.
RequestFocus()
Establece el cuadro de texto activo.

Propiedades
BackgroundColor
El color de fondo del cuadro de entrada. Puede elegir un color por nombre en el Diseñador o en el Editor de bloques. El color de fondo
predeterminado es 'predeterminado' (aspecto tridimensional sombreado).
Enabled
Si el usuario puede introducir texto en este cuadro de entrada. Por defecto, esto es cierto.
FontBold (solo diseñador)
Si la fuente para el texto debe ser negrita. Por defecto, no lo es.
FontItalic (solo diseñador)
Si el texto debe aparecer en cursiva. Por defecto, no lo hace.
FontSize
El tamaño de letra para el texto. Por defecto, es 14.0 puntos.
FontTypeface (solo diseñador)
La fuente para el texto. El valor se puede cambiar en el Diseñador.
Height
Hint
Texto que debería aparecer débilmente en el cuadro de entrada para proporcionar una pista sobre lo que el usuario debe ingresar. Esto solo se
puede ver si la Text propiedad está vacía.

MultiLine
Si es verdadero, entonces este cuadro de texto acepta múltiples líneas de entrada, que se ingresan usando la tecla de retorno. Para cuadros de texto
de una sola línea hay una tecla Listo en lugar de una tecla de retorno, y al presionar Listo se oculta el teclado. La aplicación debe llamar al método
HideKeyboard para ocultar el teclado de un cuadro de texto de varias líneas.
NumbersOnly
Si es verdadero, entonces este cuadro de texto solo acepta números como entrada de teclado. Los números pueden incluir un punto decimal y un
signo menos inicial. Esto se aplica a la entrada del teclado solamente. Incluso si NumbersOnly es verdadero, puede usar [configurar Texto en] para
ingresar cualquier texto.
Text
El texto en el cuadro de entrada, que puede ser establecido por el programador en el Diseñador o en el Editor de Bloques, o puede ser ingresado por
el usuario (a menos que la Enabled propiedad sea falsa).
TextAlignment (solo diseñador)

Si el texto debe ser justificado a la izquierda, centrado o justificado a la derecha. Por defecto, el texto está justificado a la izquierda.
TextColor
El color del texto. Puede elegir un color por nombre en el Diseñador o en el Editor de bloques. El color de texto predeterminado es negro.
Visible
Si el componente es visible
Width

Eventos
GotFocus()
Evento generado cuando se selecciona este componente para la entrada, como cuando el usuario lo toca.
LostFocus()
Evento generado cuando este componente ya no se selecciona para la entrada, como si el usuario toca un cuadro de texto diferente.

Selector de tiempo

Un botón que, al hacer clic en, inicia un cuadro de diálogo emergente para permitir al usuario seleccionar una hora.
Nota: La fecha y la hora se manipulan utilizando métodos en el componente Reloj .

Propiedades
BackgroundColor
Devuelve el color de fondo del botón.
Enabled
FontBold (solo diseñador)
FontItalic (solo diseñador)

FontSize (solo diseñador)

FontTypeface (solo diseñador)

Height
Hour

La hora de la última hora establecida con el selector de hora. La hora está en un formato de 24 horas. Si la última vez que se programó fue a las
11:53 pm, esta propiedad devolverá 23.
Image
Especifica la ruta de acceso de la imagen del botón. Si hay una imagen y un color de fondo, solo la imagen será visible.
Instant
Instante de tiempo. Este instante se puede usar con el componente Reloj para la documentación de tiempo, la conversión y la matriculación.

Minute

El minuto del último ajuste de tiempo con el selector de tiempo.


Shape (solo diseñador)
Especifica la forma del botón (predeterminado, redondeado, rectangular, ovalado). La forma no será visible si se muestra una imagen.
ShowFeedback
Especifica si se debe mostrar una retroalimentación visual para un botón que como imagen como fondo.
Text
TextAlignment (solo diseñador)

TextColor

Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
Eventos
AfterTimeSet()
Este evento se ejecuta cuando un usuario ha establecido la hora en el cuadro de diálogo emergente.
GotFocus()
Indica el cursor movido sobre el botón, por lo que ahora es posible hacer clic en él.
LostFocus()
Indica el cursor alejado del botón, por lo que ya no es posible hacer clic en él.

Métodos
LaunchPicker()
Inicia la ventana emergente TimePicker.
SetTimeToDisplay(number hour, number minute)
Permite al usuario configurar el tiempo que se mostrará cuando se abra el selector de tiempo. Los valores válidos para el campo de hora son 0-23 y
0-59 para el segundo campo.
SetTimeToDisplayFromInstant(InstantInTime instant)
Permite que el instante configure la hora y los minutos que se mostrarán cuando se abra el selector de tiempo. Los instantes se utilizan en los
componentes Clock, DatePicker y TimePicker.

WebViewer

Componente para la visualización de páginas web. La URL de inicio se puede especificar en el Diseñador o en el Editor de bloques. La vista se puede
configurar para seguir los enlaces cuando se tocan, y los usuarios pueden completar formularios web. Advertencia: Este no es un navegador completo. Por
ejemplo, al presionar la tecla Atrás del hardware del teléfono saldrá de la aplicación, en lugar de retroceder en el historial del navegador.
Puede usar la propiedad WebViewer.WebViewString para comunicarse entre su aplicación y el código Javascript que se ejecuta en la página Webviewer. En
la aplicación, obtienes y configuras WebViewString. En el WebViewer, incluye Javascript que hace referencia al objeto window.AppInventor, utilizando los
methoods y setWebViewString (texto) .
Por ejemplo, si WebViewer se abre en una página que contiene el comando de Javascript
document.write ("La respuesta es" + window.AppInventor.getWebViewString ());
y si configura WebView.WebVewString en "hola", la página web mostrará
La respuesta es hola .
Y si la página web contiene Javascript que ejecuta el comando
windowAppInventor.setWebViewString ("hola desde Javascript") ,
entonces el valor de la propiedad WebViewString será
hola desde Javascript .

Propiedades
CurrentPageTitle

Título de la página actualmente vista


CurrentUrl
URL de la página actualmente vista. Esto podría ser diferente de la URL de inicio si se visitaran nuevas páginas siguiendo los enlaces.
FollowLinks
Determina si se deben seguir los enlaces cuando se tocan en el WebViewer. Si sigue los enlaces, puede usar GoBack y GoForward para navegar
por el historial del navegador.
Height
HomeUrl
URL de la página a la que se debería abrir inicialmente WebViewer. Configurando esto cargará la página.
IgnoreSslError
Determine si ignorar o no los errores de SSL. Establézcalo en verdadero para ignorar los errores. Use esto para aceptar certificados autofirmados de
sitios web.
PromptforPermission
Si es Verdadero, pídale al usuario de WebView que le dé permiso para acceder a la API de geolocalización. Si es falso, asume que se concede el
permiso.
UsesLocation (solo diseñador)
Si se otorga o no permiso a la aplicación para utilizar la API de geolocalización de Javascript. Esta propiedad está disponible sólo en el diseñador.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
WebViewString
Obtiene el String de WebView, que se puede ver a través de Javascript en el WebView como el objeto window.AppInventor
Width

Eventos
ninguna

Métodos
boolean CanGoBack()
Devuelve verdadero si el WebViewer puede volver a la lista del historial.
boolean CanGoForward()
Devuelve verdadero si el WebViewer puede avanzar en la lista del historial.
ClearCaches()
Borrar las cachés de WebViewer
ClearLocations()
Borrar permisos de ubicación almacenados.
GoBack()
Vuelve a la página anterior en la lista de historial. No hace nada si no hay página anterior.
GoForward()
Avanza a la página siguiente en la lista de historial. No hace nada si no hay página siguiente.
GoHome()
Carga la página URL de inicio. Esto sucede automáticamente cuando se cambia la URL de inicio.
GoToUrl(text url)
Carga la página en la URL dada.

Componentes de diseño - App Inventor para Android

Tabla de contenido
 HorizontalArrangement
 HorizontalScrollArrangement
 TableArrangement
 VerticalArrangement
 VerticalScrollArrangement

HorizontalArrangement

Utilice un componente de disposición horizontal para mostrar un grupo de componentes dispuestos de izquierda a derecha.
Este componente es un elemento de formato en el que coloca componentes que deben mostrarse de izquierda a derecha. Si desea que los componentes se
muestren uno sobre otro, utilice VerticalArrangement en su lugar.

En un arreglo horizontal, los componentes están dispuestos a lo largo del eje horizontal, alineados verticalmente en el centro.

Si la propiedad Altura de un arreglo horizontal se establece en Automático, la altura real de la disposición está determinada por el componente más alto en la
disposición cuya propiedad Altura no está configurada como Padre de relleno. Si la propiedad Altura de HorizontalArrangment se establece en Automático y
contiene solo componentes cuyas propiedades Altura se configuran en Relleno principal, la altura real de la disposición se calcula utilizando las alturas
automáticas de los componentes. Si la propiedad Altura de un arreglo horizontal se establece en Automático y está vacía, la altura será 100.
Si la propiedad Ancho de un arreglo horizontal se establece en Automático, el ancho real del arreglo se determina por la suma de los anchos de los
componentes. Si la propiedad Width de HorizontalArrangement se establece en Automatic, cualquier componente cuyas propiedades Width se
configuren en Fill Parent se comportará como si estuvieran configurados en Automatic.

Si la propiedad Width de HorizontalArrangement se establece en Fill Parent o se especifica en píxeles, todos los componentes cuyas propiedades Width se
configuren a Fill Parent también ocuparán el ancho no ocupado por otros componentes.

Propiedades
AlignHorizontal
Un número que codifica cómo se alinean los contenidos de la disposición horizontalmente. Las opciones son: 1 = alineado a la izquierda, 2 =
alineado a la derecha, 3 = centrado horizontalmente. La alineación no tiene efecto si el ancho del arreglo es automático.
AlignVertical
Un número que codifica cómo se alinean verticalmente los contenidos de la disposición. Las opciones son: 1 = alineado en la parte superior, 2 =
alineado en la parte inferior, 3 = centrado verticalmente. La alineación no tiene efecto si la altura del arreglo es automática.
BackgroundColor
Color de fondo para este componente.
Image
Imagen de fondo para este componente
Visible
Si es verdadero, el componente y su contenido son visibles.
Height
Altura de arreglo horizontal (tamaño y).
Width
Ancho del arreglo horizontal (tamaño x).

HorizontalScrollArrangement
Un elemento de formato en el que colocar componentes que deben mostrarse de izquierda a derecha. Si desea que los componentes se muestren uno sobre
otro, utilice VerticalArrangementen su lugar.
Esta versión es desplazable.

Propiedades
AlignHorizontal
Un número que codifica cómo se alinean los contenidos de la disposición horizontalmente. Las opciones son: 1 = alineado a la izquierda, 2 =
alineado a la derecha, 3 = centrado horizontalmente. La alineación no tiene efecto si el ancho del arreglo es automático.
AlignVertical
Un número que codifica cómo se alinean verticalmente los contenidos de la disposición. Las opciones son: 1 = alineado en la parte superior, 2 =
alineado en la parte inferior, 3 = centrado verticalmente. La alineación no tiene efecto si la altura del arreglo es automática.
BackgroundColor
Devuelve el color de fondo del componente.
Height
HeightPercent

Image
Especifica la ruta de la imagen del componente. Si hay una imagen y un color de fondo, solo la imagen será visible.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
WidthPercent

TableArrangement

Utilice un componente de disposición de tablas para visualizar un grupo de componentes de forma tabular.

Este componente es un elemento de formato en el que coloca los componentes que deben mostrarse en forma tabular.
En un arreglo de tabla, los componentes se organizan en una cuadrícula de filas y columnas, con no más de un componente visible en cada celda. Si varios
componentes ocupan la misma celda, solo el último será visible.

Dentro de cada fila, los componentes están alineados verticalmente en el centro.


El ancho de una columna está determinado por el componente más ancho de esa columna. Al calcular el ancho de columna, el ancho automático se usa
para los componentes cuya propiedad Width se establece en Fill Parent. Sin embargo, cada componente siempre llenará el ancho completo de la
columna que ocupa.

La altura de una fila está determinada por el componente más alto en esa fila cuya propiedad de Altura no está establecida en Rellenar padre. Si una fila
contiene solo componentes cuyas propiedades de Altura se establecen en Rellenar padre, la altura de la fila se calcula utilizando las alturas automáticas de
los componentes.

Propiedades
Visible
Si es verdadero, el componente y su contenido son visibles.
Rows (number-of-rows)
El número de filas en la tabla.
Columns (number-of-columns)
El número de columnas en la tabla.
Height
Altura de la disposición de la mesa (tamaño y).
Width
Ancho de la disposición de la mesa (tamaño x).

VerticalArrangement
Use un componente de disposición vertical para mostrar un grupo de componentes dispuestos de arriba a abajo, alineados a la izquierda.
Este componente es un elemento de formato en el que coloca componentes que deben mostrarse uno debajo del otro. El primer componente secundario se
almacena en la parte superior, el segundo debajo de él, y así sucesivamente. Si desea que los componentes se muestren uno al lado del otro,
utilice HorizontalArrangement en su lugar.

En un arreglo vertical, los componentes están dispuestos a lo largo del eje vertical, alineados a la izquierda.

Si una propiedad de Ancho de VerticalArrangement se establece en Automático, el ancho real de la disposición se determina por el componente más ancho
en la disposición cuya propiedad de Ancho no se establece en Rellenar padre. Si la propiedad Width de VerticalArrangement se establece en Automático y
contiene solo componentes cuyas propiedades Width se configuran en Relleno principal, el ancho real de la disposición se calcula utilizando los anchos
automáticos de los componentes. Si la propiedad Width de VerticalArrangement se establece en Automático y está vacía, el ancho será 100.
Si la propiedad Altura de un arreglo vertical se establece en Automático, la altura real del arreglo está determinada por la suma de las alturas de los
componentes. Si la propiedad Altura de VerticalArrangement se establece en Automático, todos los componentes cuyas propiedades de Altura se
configuren en Completar padre se comportarán como si estuvieran configurados en Automático.
Si la propiedad Altura de VerticalArrangement se establece en Rellenar padre o se especifica en píxeles, cualquier componente cuyas propiedades de Altura
se establezcan en Rellenar padre también tomará la altura que no ocupan otros componentes.

Propiedades
AlignHorizontal
Un número que codifica cómo se alinean los contenidos de la disposición horizontalmente. Las opciones son: 1 = alineado a la izquierda, 2 =
centrado horizontalmente, 3 = alineado a la derecha. La alineación no tiene efecto si el ancho del arreglo es automático.
AlignVertical
Un número que codifica cómo se alinean verticalmente los contenidos de la disposición. Las opciones son: 1 = alineado en la parte superior, 2 =
centrado verticalmente, 3 = alineado en la parte inferior. La alineación no tiene efecto si la altura del arreglo es automática.
BackgroundColor
Color de fondo para este componente.
Image
Imagen de fondo para este componente
Visible
Si es verdadero, el componente y su contenido son visibles.
Height
Altura vertical de la disposición (tamaño y).
Width
Ancho de la disposición vertical (tamaño x).

VerticalScrollArrangement
Un elemento de formato en el que colocar los componentes que deben mostrarse uno debajo del otro. (El primer componente secundario se almacena en la
parte superior, el segundo debajo, etc.) Si desea que los componentes se muestren uno al lado del otro, utilice HorizontalArrangementen su lugar.

Esta versión es desplazable.

Propiedades
AlignHorizontal
Un número que codifica cómo se alinean los contenidos de la disposición horizontalmente. Las opciones son: 1 = alineado a la izquierda, 2 =
alineado a la derecha, 3 = centrado horizontalmente. La alineación no tiene efecto si el ancho del arreglo es automático.
AlignVertical
Un número que codifica cómo se alinean verticalmente los contenidos de la disposición. Las opciones son: 1 = alineado en la parte superior, 2 =
alineado en la parte inferior, 3 = centrado verticalmente. La alineación no tiene efecto si la altura del arreglo es automática.
BackgroundColor
Devuelve el color de fondo del componente.
Height
HeightPercent

Image
Especifica la ruta de la imagen del componente. Si hay una imagen y un color de fondo, solo la imagen será visible.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width
WidthPercent

Media Components - App Inventor para Android

Tabla de contenido
 Videocámara
 Cámara
 Selector de imagen
 Jugador
 Sonar
 Registrador de sonido
 Reconocimiento de voz
 Texto a voz
 reproductor de video
 yandextranslat a

Videocámara

Un componente para grabar un video usando la videocámara del dispositivo. Después de que se grabe el video, el nombre del archivo en el teléfono que
contiene el clip está disponible como un argumento para el evento AfterRecording. El nombre del archivo se puede usar, por ejemplo, para establecer la
propiedad de origen de un componente de VideoPlayer.

Propiedades
ninguna
Eventos
AfterRecording(text clip)
Indica que se grabó un video con la cámara y proporciona la ruta de acceso a la imagen almacenada.

Métodos
RecordVideo()
Graba un video, luego levanta el evento AfterRecoding.

Cámara

Use un componente de la cámara para tomar una foto en el teléfono.

La cámara es un componente no visible que toma una foto con la cámara del dispositivo. Después de tomar la fotografía, la ruta al archivo en el teléfono que
contiene la imagen está disponible como un argumento para el evento AfterPicture. La ruta se puede usar, por ejemplo, como la propiedad de Imagen de un
componente de Imagen.

Propiedades
ninguna

Métodos
TakePicture()
Abre la cámara del teléfono para permitir que se tome una foto.
Eventos
AfterPicture(Text image)
Llamado después de tomar la foto. El argumento de texto image es la ruta que se puede utilizar para ubicar la imagen en el teléfono.

Selector de imagen
Un botón especial. Cuando el usuario toca un selector de imágenes, aparece la galería de imágenes del dispositivo y el usuario puede elegir una
imagen. Después de seleccionar una imagen, se guarda y la Selectedpropiedad será el nombre del archivo donde se almacena la imagen. Para no llenar el
almacenamiento, se almacenarán un máximo de 10 imágenes. Al seleccionar más imágenes se eliminarán las imágenes anteriores, en orden de la más
antigua a la más reciente.

Propiedades
BackgroundColor
Devuelve el color de fondo del botón.
Enabled
FontBold (solo diseñador)

FontItalic (solo diseñador)

FontSize (solo diseñador)

FontTypeface (solo diseñador)

Height

Image
Especifica la ruta de acceso de la imagen del botón. Si hay una imagen y un color de fondo, solo la imagen será visible.
Selection
Ruta al archivo que contiene la imagen que fue seleccionada.
Shape (solo diseñador)
Especifica la forma del botón (predeterminado, redondeado, rectangular, ovalado). La forma no será visible si se muestra una imagen.
ShowFeedback
Especifica si se debe mostrar una retroalimentación visual para un botón que como imagen como fondo.
Text
TextAlignment (solo diseñador)

TextColor

Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width

Eventos
AfterPicking()
Evento simple que se generará después de que la actividad del selector devuelva su resultado y se hayan completado las propiedades.
BeforePicking()
Evento simple que se genera cuando se hace clic en el componente pero antes de que se inicie la actividad del selector.
GotFocus()
Indica el cursor movido sobre el botón, por lo que ahora es posible hacer clic en él.
LostFocus()
Indica el cursor alejado del botón, por lo que ya no es posible hacer clic en él.

Métodos
Open()
Abre el selector, como si el usuario hiciera clic en él.
Jugador
Componente multimedia que reproduce audio y controla la vibración del teléfono. El nombre de un campo multimedia se especifica en la Sourcepropiedad,
que se puede configurar en el Diseñador o en el Editor de bloques. La cantidad de tiempo para una vibración se especifica en el Editor de bloques en
milisegundos (milésimas de segundo).
Para conocer los formatos de audio compatibles, consulte Formatos de medios compatibles con Android .
Este componente es mejor para archivos de sonido largos, como las canciones, mientras que el Soundcomponente es más eficiente para archivos cortos,
como los efectos de sonido.

Propiedades
IsPlaying

Informa si los medios se están reproduciendo.


Loop
Si es verdadero, el jugador hará un bucle cuando juegue. La configuración del bucle mientras el jugador está jugando afectará la reproducción actual.
PlayOnlyInForeground
Si es verdadero, el jugador pausará la reproducción cuando salga de la pantalla actual; si es falso (opción predeterminada), el jugador continúa
jugando siempre que la pantalla actual se muestre o no.
Source
Volume
Establece el volumen a un número entre 0 y 100.

Eventos
Completed()
Indica que los medios de comunicación han llegado al final.
OtherPlayerStarted()
Este evento se señala cuando otro jugador ha comenzado (y el jugador actual está jugando o en pausa, pero no se ha detenido).
Métodos
Pause()
Suspende la reproducción de los medios si se está reproduciendo.
Start()
Reproduce los medios de comunicación. Si fue pausado previamente, se reanuda la reproducción. Si fue detenido previamente, comienza desde el
principio.
Stop()
Deja de reproducir los medios de comunicación y busca el comienzo de la canción.
Vibrate(number milliseconds)
Vibra para un número específico de milisegundos.

Sonar

Un componente multimedia que reproduce archivos de sonido y, opcionalmente, vibra durante la cantidad de milisegundos (milésimas de segundo)
especificada en el Editor de bloques. El nombre del archivo de sonido a reproducir se puede especificar en el Diseñador o en el Editor de bloques.
Para conocer los formatos de archivos de sonido compatibles, consulte Formatos de medios compatibles con Android .
Este Soundcomponente es mejor para archivos de sonido cortos, como los efectos de sonido, mientras que el Playercomponente es más eficiente para
sonidos más largos, como las canciones.

Propiedades
MinimumInterval
El intervalo mínimo, en milisegundos, entre los sonidos. Si reproduce un sonido, todas las llamadas Play () posteriores se ignorarán hasta que haya
transcurrido el intervalo.
Source
El nombre del archivo de sonido. Sólo se admiten ciertos formatos. Consulte http://developer.android.com/guide/appendix/media-formats.html.
Eventos
ninguna

Métodos
Pause()
Pausa la reproducción del sonido si se está reproduciendo.
Play()
Reproduce el sonido.
Resume()
Reanuda la reproducción del sonido después de una pausa.
Stop()
Detiene la reproducción del sonido si se está reproduciendo.
Vibrate(number millisecs)
Vibra para el número especificado de milisegundos.

Registrador de sonido

Componente multimedia que graba audio.

Propiedades
SavedRecording
Especifica la ruta al archivo donde se debe almacenar la grabación. Si esta propiedad es la cadena vacía, al iniciar una grabación se creará un
archivo en una ubicación adecuada. Si la propiedad no es la cadena vacía, debe especificar una ruta completa a un archivo en un directorio
existente, incluido un nombre de archivo con la extensión .3gp.
Eventos
AfterSoundRecorded(text sound)
Proporciona la ubicación del sonido recién creado.
StartedRecording()
Indica que la grabadora se ha iniciado y se puede detener.
StoppedRecording()
Indica que la grabadora se ha detenido y se puede volver a iniciar.

Métodos
Start ()

Inicia la grabación.
Stop ()
Detiene la grabación.

Reconocimiento de voz

Use un componente de reconocimiento de voz para escuchar al usuario que habla y convertir el sonido hablado en texto usando la función de reconocimiento
de voz de Android.

Propiedades
Result
El último texto producido por el reconocedor.
Métodos
GetText()
Pide al usuario que hable y convierte el discurso en texto. Señala el AfterGettingText evento cuando el resultado está disponible.

Eventos
AfterGetting(Text result)
Señalizado después de que el reconocedor haya producido texto. El argumento es el resultado del texto que se produjo.
BeforeGettingText()
Señalizado justo antes de llamar al reconocedor.

Texto a voz

El componente TestToSpeech habla un texto dado en voz alta. Puede establecer el tono y la velocidad del habla.

También puede establecer un idioma proporcionando un código de idioma. Esto cambia la pronunciación de las palabras, no el lenguaje real hablado. Por
ejemplo, establecer el idioma en francés y en texto hablado en inglés sonará como alguien que habla inglés (en) con acento francés.

También puede especificar un país proporcionando un código de país. Esto puede afectar la pronunciación. Por ejemplo, el inglés británico (GBR) sonará
diferente del inglés estadounidense (EE. UU.). No todos los códigos de país afectarán a todos los idiomas.

Los idiomas y los países disponibles dependen del dispositivo en particular y pueden enumerarse con las propiedades AvailableLanguages y
AvailableCountries.

Propiedades
AvailableCountries
Lista de los códigos de país disponibles en este dispositivo para usar con TextToSpeech. Consulte la documentación del desarrollador de Android en
los idiomas compatibles para encontrar el significado de estas abreviaturas.
AvailableLanguages
Lista de los idiomas disponibles en este dispositivo para usar con TextToSpeech. Consulte la documentación del desarrollador de Android en los
idiomas compatibles para encontrar el significado de estas abreviaturas.
Country
Código de país a utilizar para la generación de voz. Esto puede afectar la pronunciación. Por ejemplo, el inglés británico (GBR) sonará diferente del
inglés estadounidense (EE. UU.). No todos los códigos de país afectarán a todos los idiomas.
Language
Establece el idioma para TextToSpeech. Esto cambia la forma en que se pronuncian las palabras, no el idioma real que se habla. Por ejemplo,
configurar el idioma en francés y el texto en inglés hablado sonará como si alguien habla inglés con acento francés.
Pitch
Establece el tono para TextToSpeech. Los valores deben estar entre 0 y 2, donde los valores más bajos reducen el tono de la voz sintetizada y los
valores más altos aumentan.
Result
SpeechRate
Establece la SpeechRate para TextToSpeech. Los valores deben estar entre 0 y 2, donde los valores más bajos reducen la velocidad del tono y los
valores más altos lo aceleran.

Eventos
AfterSpeaking(boolean result)
Evento a plantear después de hablado el mensaje.
BeforeSpeaking()
Evento que se genera cuando se invoca Hablar, antes de que se pronuncie el mensaje.

Métodos
Speak(text message)
Habla el mensaje dado.

reproductor de video
Un componente multimedia capaz de reproducir videos. Cuando se ejecuta la aplicación, VideoPlayer se mostrará como un rectángulo en pantalla. Si el
usuario toca el rectángulo, los controles aparecerán para reproducir / pausar, saltar hacia adelante y saltar hacia atrás dentro del video. La aplicación también
puede controlar el comportamiento llamando a los Start, Pausey SeekTométodos.
Los archivos de video deben estar en formatos 3GPP (.3gp) o MPEG-4 (.mp4). Para obtener más detalles sobre los formatos legales, consulte Formatos de
medios compatibles con Android .

App Inventor para Android solo permite archivos de video de menos de 1 MB y limita el tamaño total de una aplicación a 5 MB, y no todos están disponibles
para archivos de medios (video, audio y sonido). Si sus archivos de medios son demasiado grandes, puede obtener errores al empaquetar o instalar su
aplicación, en cuyo caso debe reducir la cantidad de archivos de medios o sus tamaños. La mayoría del software de edición de videos, como Windows Movie
Maker y Apple iMovie, pueden ayudarlo a reducir el tamaño de los videos acortándolos o recodificándolos en un formato más compacto.

También puede configurar la fuente de medios a una URL que apunta a un video de transmisión, pero la URL debe apuntar al archivo de video en sí, no a un
programa que reproduzca el video.

Propiedades
FullScreen

Height

Source
El "camino" al video. Por lo general, este será el nombre del archivo de video, que debe agregarse en el Diseñador.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Volume
Establece el volumen en un número entre 0 y 100. Los valores menores que 0 se tratarán como 0 y los valores mayores que 100 se tratarán como
100.
Width
Eventos
Completed()
Indica que el video ha llegado al final.

Métodos
number GetDuration()
Devuelve la duración del video en milisegundos.
Pause()
Pausa la reproducción del video. La reproducción se puede reanudar en el mismo lugar llamando al Startmétodo.

SeekTo(number ms)
Busca el tiempo solicitado (especificado en milisegundos) en el video. Si el video está en pausa, la búsqueda no actualizará el cuadro que se
muestra. El jugador puede saltar solo a fotogramas clave en el video, por lo que buscar tiempos que difieran en intervalos cortos puede que no se
mueva a fotogramas diferentes.
Start()
Inicia la reproducción del video.

yandextranslat a

Utilice este componente para traducir palabras y oraciones entre diferentes idiomas. Este componente necesita acceso a Internet, ya que solicitará
traducciones al servicio Yandex.Translate. Especifique el idioma de origen y destino en el formulario origen-destino utilizando códigos de idioma de dos
letras. Así que "en-es" se traducirá del inglés al español, mientras que "es-ru" se traducirá del español al ruso. Si omite el idioma de origen, el servicio
intentará detectar el idioma de origen. Por lo tanto, proporcionar solo "es" intentará detectar el idioma de origen y traducirlo al español.

Este componente es impulsado por el servicio de traducción de Yandex. Consulte http://api.yandex.com/translate/ para obtener más información, incluida la
lista de idiomas disponibles y los significados de los códigos de idiomas y los códigos de estado.

Nota: la traducción se realiza de forma asíncrona en segundo plano. Cuando se completa la traducción, se activa el evento "GotTranslation".
Propiedades
ninguna

Eventos
GotTranslation(text responseCode, text translation)
Evento activado cuando el servicio Yandex.Translate devuelve el texto traducido. Este evento también proporciona un código de respuesta para el
manejo de errores. Si el código de respuesta no es 200, entonces algo salió mal con la llamada y la traducción no estará disponible.

Métodos
RequestTranslation(text languageToTranslateTo, text textToTranslate)
Al proporcionar un idioma de destino para traducir (por ejemplo, 'es' para español, 'en' para inglés o 'ru' para ruso), y una palabra u oración para
traducir, este método solicitará una traducción a Yandex. Servicio de traducción. Una vez que el texto es traducido por el servicio externo, se
ejecutará el evento GotTranslation. Nota: Yandex.Translate intentará detectar el idioma de origen. También puede especificar el antepaso a la
traducción del idioma. Es decir, es-ru especificará la traducción del español al ruso.

Componentes de dibujo y animación - App Inventor para Android

Tabla de contenido
 Bola
 Lona
 ImageSprite

Bola
Un 'sprite' redondo que se puede colocar en a Canvas, donde puede reaccionar a toques y arrastres, interactuar con otros sprites ( ImageSpritesy otros Ball) y
el borde del Canvas, y moverse según sus valores de propiedad.
Por ejemplo, para tener un Ballmovimiento de 4 píxeles hacia la parte superior de Canvascada 500 milisegundos (medio segundo), debe establecer
la Speedpropiedad en 4 [píxeles], la Intervalpropiedad en 500 [milisegundos], la Headingpropiedad en 90 [grados], y La Enabledpropiedad a True. Estas y sus
otras propiedades se pueden cambiar en cualquier momento.
La diferencia entre una bola y una ImageSpritees que esta última puede obtener su apariencia de un archivo de imagen, mientras que la apariencia de una
bola solo se puede cambiar variando sus propiedades PaintColory Radius.

Propiedades
Enabled
Controla si el sprite se mueve cuando su velocidad no es cero.
Heading
Devuelve el encabezado del sprite en grados sobre el eje x positivo. Los cero grados están hacia la derecha de la pantalla; 90 grados es hacia la
parte superior de la pantalla.
Interval
El intervalo en milisegundos en el que se actualiza la posición del sprite. Por ejemplo, si el intervalo es 50 y la velocidad es 10, entonces el sprite
moverá 10 píxeles cada 50 milisegundos.
PaintColor

Radius

Speed
La velocidad a la que se mueve el sprite. El sprite mueve tantos píxeles en cada intervalo.
Visible
Verdad si el sprite es visible.
X
La coordenada horizontal del borde izquierdo del sprite, que aumenta a medida que el sprite se mueve hacia la derecha.
Y
La coordenada vertical de la parte superior del sprite, que aumenta a medida que el sprite se mueve hacia abajo.
Z
Cómo se debe estratificar el sprite en relación con otros espíritus, con capas de mayor número delante de capas de menor número.

Eventos
CollidedWith(component other)
Controlador para eventos CollidedWith, llamado cuando dos sprites chocan. Tenga en cuenta que la comprobación de colisiones con un ImageSprite
girado actualmente se compara con la posición no girada del sprite. Por lo tanto, la comprobación de colisiones será inexacta para los sprites altos,
estrechos o cortos anchos que se giran.
Dragged(number startX, number startY, number prevX, number prevY, number currentX, number currentY)
Manejador de eventos arrastrados. En todas las llamadas, las coordenadas de inicio son donde se tocó la pantalla por primera vez, y las
coordenadas "actuales" describen el punto final del segmento de línea actual. En la primera llamada dentro de un arrastre dado, las coordenadas
"anteriores" son las mismas que las coordenadas iniciales; Posteriormente, son las coordenadas "actuales" de la llamada anterior. Tenga en cuenta
que el Sprite no se moverá realmente a ninguna parte en respuesta al evento Arrastado a menos que se llame específicamente a MoveTo.
EdgeReached(number edge)
Controlador de eventos llamado cuando el sprite alcanza un borde de la pantalla. Si se llama a Bounce con ese borde, el sprite aparecerá rebotar
fuera del borde al que llegó. El borde aquí se representa como un número entero que indica una de las ocho direcciones norte (1), noreste (2), este
(3), sureste (4), sur (-1), suroeste (-2), oeste (-3) , y noroeste (-4).
Flung(number x, number y, number speed, number heading, number xvel, number yvel)
Cuando se realiza un gesto de lanzamiento (barrido rápido) en el sprite: proporciona la posición (x, y) del inicio del lanzamiento, con respecto a la
parte superior izquierda del lienzo. También proporciona la velocidad (píxeles por milisegundo) y el rumbo (0-360 grados) del lanzamiento, así como
los componentes de velocidad x y velocidad e del vector de fling.
NoLongerCollidingWith(component other)
Evento que indica que un par de sprites ya no chocan.
TouchDown(number x, number y)
Cuando el usuario comienza a tocar el sprite (coloca el dedo sobre el sprite y lo deja allí): proporciona la posición (x, y) del toque, relativa a la parte
superior izquierda del lienzo
TouchUp(number x, number y)
Cuando el usuario deja de tocar el sprite (levanta el dedo después de un evento TouchDown): proporciona la posición (x, y) del toque, relativa a la
parte superior izquierda del lienzo
Touched(number x, number y)
Cuando el usuario toca el sprite e inmediatamente levanta el dedo: proporciona la posición (x, y) del toque, relativa a la parte superior izquierda del
lienzo

Métodos
Bounce(number edge)
Hace que este sprite rebote, como si fuera un muro. Para el rebote normal, el argumento de borde debe ser el que devuelve EdgeReached.
boolean CollidingWith(component other)
Indica si se ha registrado una colisión entre este sprite y el sprite pasado.
MoveIntoBounds()
Mueve el sprite nuevamente dentro de los límites si parte de él se extiende fuera de los límites, de lo contrario, no tendrá ningún efecto. Si el sprite es
demasiado ancho para caber en el lienzo, esto alinea el lado izquierdo del sprite con el lado izquierdo del lienzo. Si el sprite es demasiado alto para
caber en el lienzo, esto alinea el lado superior del sprite con el lado superior del lienzo.
MoveTo(number x, number y)
Mueve el objeto sprite de modo que su esquina superior izquierda esté en las coordenadas especificadas x e y.
PointInDirection(number x, number y)
Gira el sprite para que apunte hacia el punto con coordenadas como (x, y).
PointTowards(component target)
Gira el sprite para que apunte hacia un sprite objetivo designado. El nuevo encabezado será paralelo a la línea que une los puntos centrales de los
dos sprites.

Lona

Un panel rectangular bidimensional sensible al tacto en el que se puede dibujar y mover los sprites.
El BackgroundColor, PaintColor, BackgroundImage, Width, y Heightdel lienzo se puede configurar ya sea en el diseñador o en el Editor de
bloques. Los Widthy Heightse miden en píxeles y deben ser positivos.

Cualquier ubicación en el lienzo puede especificarse como un par de valores (X, Y), donde

 X es el número de píxeles alejados del borde izquierdo del lienzo


 Y es la cantidad de píxeles alejados del borde superior del lienzo

.
Hay eventos que indican cuándo y dónde se ha tocado un lienzo o se ha arrastrado Sprite ( ImageSpriteo Ball). También hay métodos para dibujar puntos,
líneas y círculos.

Propiedades
BackgroundColor
El color del fondo del lienzo.
BackgroundImage
El nombre de un archivo que contiene la imagen de fondo del lienzo.
FontSize
El tamaño de fuente del texto dibujado en el lienzo.
Height
LineWidth
El ancho de las líneas dibujadas en el lienzo.
PaintColor
El color en el que se dibujan las líneas.
TextAlignment
Determina la alineación del texto dibujado por DrawText () o DrawAngle () con respecto al punto especificado por ese comando: punto a la izquierda
del texto, punto al centro del texto o punto a la derecha del texto.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width

Eventos
Dragged(number startX, number startY, number prevX, number prevY, number currentX, number currentY, boolean
draggedSprite)
Cuando el usuario hace un arrastre de un punto (prevX, prevY) a otro (x, y). El par (startX, startY) indica dónde el usuario tocó la pantalla por primera
vez, y "draggedSprite" indica si se está arrastrando un sprite.
Flung(number x, number y, number speed, number heading, number xvel, number yvel, boolean flungSprite)
Cuando se realiza un gesto de lanzamiento (deslizamiento rápido) en el lienzo: proporciona la posición (x, y) del inicio del lanzamiento, con respecto
a la parte superior izquierda del lienzo. También proporciona la velocidad (píxeles por milisegundo) y el rumbo (0-360 grados) del lanzamiento, así
como los componentes de velocidad x y velocidad e del vector de fling. El valor "flungSprite" es verdadero si un sprite se ubicó cerca del punto de
inicio del gesto de lanzamiento.
TouchDown(number x, number y)
Cuando el usuario comienza a tocar el lienzo (coloca el dedo en el lienzo y lo deja allí): proporciona la posición (x, y) del toque, relativa a la parte
superior izquierda del lienzo
TouchUp(number x, number y)
Cuando el usuario deja de tocar el lienzo (levanta el dedo después de un evento TouchDown): proporciona la posición (x, y) del toque, relativa a la
parte superior izquierda del lienzo
Touched(number x, number y, boolean touchedSprite)
Cuando el usuario toca el lienzo y luego levanta el dedo inmediatamente: proporciona la posición (x, y) del toque, relativa a la parte superior izquierda
del lienzo. TouchedSprite es verdadero si el mismo toque también tocó un sprite, y falso en caso contrario.

Métodos
Clear()
Borra todo lo que se dibuje en este lienzo, pero no cualquier color de fondo o imagen.
DrawCircle(number x, number y, number r)
Dibuja un círculo (completado) en las coordenadas dadas en el lienzo, con el radio dado.
DrawLine(number x1, number y1, number x2, number y2)
Dibuja una línea entre las coordenadas dadas en el lienzo.
DrawPoint(number x, number y)
Dibuja un punto en las coordenadas dadas en el lienzo.
DrawText(text text, number x, number y)
Dibuja el texto especificado en relación con las coordenadas especificadas utilizando los valores de las propiedades FontSize y TextAlignment.
DrawTextAtAngle(text text, number x, number y, number angle)
Dibuja el texto especificado comenzando en las coordenadas especificadas en el ángulo especificado usando los valores de las propiedades
FontSize y TextAlignment.
number GetBackgroundPixelColor(number x, number y)
Obtiene el color del punto especificado. Esto incluye el fondo y los puntos, líneas o círculos dibujados, pero no los sprites.
number GetPixelColor(number x, number y)
Obtiene el color del punto especificado.
text Save()
Guarda una imagen de este lienzo en el almacenamiento externo del dispositivo. Si ocurre un error, se invocará el evento ErrorOccurred de la
pantalla.
text SaveAs(text fileName)
Guarda una imagen de este lienzo en el almacenamiento externo del dispositivo en el archivo denominado fileName. fileName debe terminar con uno
de .jpg, .jpeg o .png, que determina el tipo de archivo.
SetBackgroundPixelColor(number x, number y, number color)
Establece el color del punto especificado. Esto difiere de DrawPoint por tener un argumento para el color.

ImageSprite
Un 'sprite' que se puede colocar en a Canvas, donde puede reaccionar a los toques y arrastres, interactuar con otros sprites ( Balls y otros ImageSprites) y el
borde del Canvas, y moverse según sus valores de propiedad. Su apariencia es la de la imagen especificada en su Picturepropiedad (a menos que sea
su Visiblepropiedad) False.
Para ImageSpritemover 10 píxeles a la izquierda cada 1000 milisegundos (un segundo), por ejemplo, debe establecer la Speed propiedad en 10 [píxeles],
la Intervalpropiedad en 1000 [milisegundos], la Headingpropiedad en 180 [grados] y la Enabledpropiedad a True. Un sprite cuya Rotatespropiedad
es Truerotará su imagen como la del sprite.Headingcambios La comprobación de colisiones con un sprite girado actualmente verifica la posición no girada del
sprite, por lo que la comprobación de colisión será inexacta para los sprites altos, estrechos o cortos anchos que se rotan. Cualquiera de las propiedades del
sprite se puede cambiar en cualquier momento bajo el control del programa.

Propiedades
Enabled
Controla si el sprite se mueve cuando su velocidad no es cero.
Heading
Devuelve el encabezado del sprite en grados sobre el eje x positivo. Los cero grados están hacia la derecha de la pantalla; 90 grados es hacia la
parte superior de la pantalla.
Height

Interval
El intervalo en milisegundos en el que se actualiza la posición del sprite. Por ejemplo, si el intervalo es 50 y la velocidad es 10, entonces el sprite
moverá 10 píxeles cada 50 milisegundos.
Picture
La imagen que determina la aparición del sprite.
Rotates
Si es verdadero, la imagen del sprite gira para coincidir con el encabezado del sprite. Si es falso, la imagen del sprite no gira cuando el sprite cambia
de rumbo. El sprite gira alrededor de su punto central.
Speed
La velocidad a la que se mueve el sprite. El sprite mueve tantos píxeles en cada intervalo.
Visible
Verdad si el sprite es visible.
Width

X
La coordenada horizontal del borde izquierdo del sprite, que aumenta a medida que el sprite se mueve hacia la derecha.
Y
La coordenada vertical de la parte superior del sprite, que aumenta a medida que el sprite se mueve hacia abajo.
Z
Cómo se debe estratificar el sprite en relación con otros espíritus, con capas de mayor número delante de capas de menor número.

Eventos
CollidedWith(component other)
Controlador para eventos CollidedWith, llamado cuando dos sprites chocan. Tenga en cuenta que la comprobación de colisiones con un ImageSprite
girado actualmente se compara con la posición no girada del sprite. Por lo tanto, la comprobación de colisiones será inexacta para los sprites altos,
estrechos o cortos anchos que se giran.
Dragged(number startX, number startY, number prevX, number prevY, number currentX, number currentY)
Manejador de eventos arrastrados. En todas las llamadas, las coordenadas de inicio son donde se tocó la pantalla por primera vez, y las
coordenadas "actuales" describen el punto final del segmento de línea actual. En la primera llamada dentro de un arrastre dado, las coordenadas
"anteriores" son las mismas que las coordenadas iniciales; Posteriormente, son las coordenadas "actuales" de la llamada anterior. Tenga en cuenta
que el Sprite no se moverá realmente a ninguna parte en respuesta al evento Arrastado a menos que se llame específicamente a MoveTo.
EdgeReached(number edge)
Controlador de eventos llamado cuando el sprite alcanza un borde de la pantalla. Si se llama a Bounce con ese borde, el sprite aparecerá rebotar
fuera del borde al que llegó. El borde aquí se representa como un número entero que indica una de las ocho direcciones norte (1), noreste (2), este
(3), sureste (4), sur (-1), suroeste (-2), oeste (-3) , y noroeste (-4).
Flung(number x, number y, number speed, number heading, number xvel, number yvel)
Cuando se realiza un gesto de lanzamiento (barrido rápido) en el sprite: proporciona la posición (x, y) del inicio del lanzamiento, con respecto a la
parte superior izquierda del lienzo. También proporciona la velocidad (píxeles por milisegundo) y el rumbo (0-360 grados) del lanzamiento, así como
los componentes de velocidad x y velocidad e del vector de fling.
NoLongerCollidingWith(component other)
Evento que indica que un par de sprites ya no chocan.
TouchDown(number x, number y)
Cuando el usuario comienza a tocar el sprite (coloca el dedo sobre el sprite y lo deja allí): proporciona la posición (x, y) del toque, relativa a la parte
superior izquierda del lienzo
TouchUp(number x, number y)
Cuando el usuario deja de tocar el sprite (levanta el dedo después de un evento TouchDown): proporciona la posición (x, y) del toque, relativa a la
parte superior izquierda del lienzo
Touched(number x, number y)
Cuando el usuario toca el sprite e inmediatamente levanta el dedo: proporciona la posición (x, y) del toque, relativa a la parte superior izquierda del
lienzo

Métodos
Bounce(number edge)
Hace que este sprite rebote, como si fuera un muro. Para el rebote normal, el argumento de borde debe ser el que devuelve EdgeReached.
boolean CollidingWith(component other)
Indica si se ha registrado una colisión entre este sprite y el sprite pasado.
MoveIntoBounds()
Mueve el sprite nuevamente dentro de los límites si parte de él se extiende fuera de los límites, de lo contrario, no tendrá ningún efecto. Si el sprite es
demasiado ancho para caber en el lienzo, esto alinea el lado izquierdo del sprite con el lado izquierdo del lienzo. Si el sprite es demasiado alto para
caber en el lienzo, esto alinea el lado superior del sprite con el lado superior del lienzo.
MoveTo(number x, number y)
Mueve el objeto sprite de modo que su esquina superior izquierda esté en las coordenadas especificadas x e y.
PointInDirection(number x, number y)
Gira el sprite para que apunte hacia el punto con coordenadas como (x, y).
PointTowards(component target)
Gira el sprite para que apunte hacia un sprite objetivo designado. El nuevo encabezado será paralelo a la línea que une los puntos centrales de los
dos sprites.
Maps Components - App Inventor para Android

Tabla de contenido
 Circulo
 FeatureCollection
 LineString
 Mapa
 Marcador
 Polígono
 Rectángulo

Circulo
El componente Círculo visualiza un círculo de un radio dado, en metros, en una latitud y longitud. Appearnce del círculo puede ser personalizado utilizando
propiedades tales como FillColor, StrokeColor, y StrokeWidth.
El componente Círculo también se puede usar para implementar características como geofencing, un mecanismo donde la presencia del usuario dentro de
un área se usa para desencadenar otros comportamientos. Usando el DistanceToPointmétodo combinado con el LocationSensor , puede determinar si la
ubicación de un usuario está dentro o fuera del círculo. Puede utilizar esta función para activar acciones adicionales.

Propiedades
Descripción

Establece u obtiene la descripción mostrada en la ventana de información. La ventana de información aparece cuando el usuario toca el círculo.
Arrastrable
Establece u obtiene si el usuario puede arrastrar o no una característica del mapa. Se accede a esta función presionando prolongadamente y luego
arrastrando el círculo a una nueva ubicación.
EnableInfobox
Activa o desactiva la visualización de la ventana de infobox cuando el usuario toca el círculo.
Color de relleno
Establece u obtiene el color utilizado para rellenar el círculo.
Latitud
Establece u obtiene la latitud del centro del círculo, en grados. Valores positivos que representan al norte del ecuador y valores negativos que
representan al sur del ecuador. Para actualizar la latitud y la longitud simultáneamente, utilice el SetLocation método.
Longitud

Establece u obtiene la longitud del centro del círculo, en grados. Valores positivos que representan al este del primer meridiano y valores negativos
que representan al oeste del primer meridiano. Para actualizar la latitud y la longitud simultáneamente, utilice el SetLocationmétodo.
Radio

Establece u obtiene el radio del círculo, en metros.


Color del trazo
Establece u obtiene el color utilizado para delinear el círculo.
Anchura del trazo
Establece u obtiene el ancho del trazo utilizado para delinear el círculo.
Título
Establece u obtiene el título que se muestra en la ventana de información que aparece cuando el usuario hace clic en la función del mapa.
Tipo
Obtiene el tipo de la característica. Para Circle, esto siempre será "Circle",
Visible
Establece u obtiene si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.

Eventos
Hacer clic

Se ejecuta cuando el usuario toca el círculo.


Arrastrar
Se ejecuta durante las operaciones de arrastre.
LongClick
Se ejecuta después de que el usuario haga largos clics en el círculo, pero no activa un arrastre. Tenga en cuenta que este evento solo se activará
si Draggablees falso.
StartDrag
Se ejecuta antes de que comience una operación de arrastre. Use esto para guardar la posición actual del círculo, por ejemplo.
StopDrag
Se ejecuta después de que se completa una operación de arrastre. Use esto para guardar la nueva posición del círculo, por ejemplo.

Métodos
número DistanceToFeature (componente mapFeature, centroides booleanos)

Calcula la distancia entre el Círculo y la característica de mapa dada. Si centroidses verdadero, el cálculo se realiza entre los centroides de las dos
entidades. De lo contrario, la distancia se computará entre las dos características según los puntos más cercanos. Además, cuando centroidses
falso, este método devolverá 0 si el círculo se interseca o contiene el mapFeature. Si se produce un error, este método devolverá -1.
número DistanceToPoint (latitud del número, longitud del número, centroides booleanos)

Calcula la distancia entre el Círculo y la latitud y longitud dadas. Si centroidses cierto, la distancia se calcula desde el centro del círculo hasta el
punto dado. De lo contrario, la distancia se calcula desde el punto más cercano en el círculo hasta el punto dado. Además, este método devolverá 0
si centroidses falso y el punto está en el círculo. Si se produce un error, se devolverá -1.
HideInfobox

Oculta el cuadro de información del círculo si está visible. De lo contrario, no se toma ninguna acción.
SetLocation (latitud del número, longitud del número)
Mueve el centro del círculo a la latitud y longitud dadas. Este método es más eficiente que configurar la latitud y la longitud por separado.
ShowInfobox
Muestra el cuadro de información del círculo si no está visible. De lo contrario, este método no tiene efecto. Este método se puede usar para mostrar
el cuadro de información incluso si EnableInfoboxes falso.

FeatureCollection

Una FeatureCollection agrupa una o más características de mapa juntas. Cualquier evento que ocurra dentro de una característica en la colección también
activará el evento correspondiente en el componente de colección. FeatureCollections se puede cargar desde recursos externos para poblar Mapas con
contenido. GeoJSON es el único formato compatible en este momento.
Propiedades
Caracteristicas

Devuelve una lista de características presentes en la colección de características, si las hay.


Características deromeoJSON
Rellena la colección de características desde una cadena que contiene contenido de GeoJSON. Dado el tamaño de tales cadenas, se recomienda
cargar la colección de características desde los activos o la web usando la propiedad Fuente.
Fuente
La fuente del contenido de la colección de características, como un nombre de archivo o una URL.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.

Eventos
FeatureClick (característica de componente)

Cuando se hace clic en una característica, la colección de características que la contiene (si corresponde) también recibirá un FeatureClickevento. El
parámetro de función indica en qué función secundaria se hizo clic.
FeatureDrag (característica de componente)

Cuando se arrastra una característica, la colección principal también recibirá un FeatureDrag evento. El parámetro de característica indica qué
característica secundaria se arrastró.
FeatureLongClick (característica de componente)

Cuando se hace clic en una característica durante mucho tiempo, la colección principal también recibirá un FeatureLongClickevento. El parámetro de
la característica indica en qué característica del niño se hizo clic durante mucho tiempo.
FeatureStartDrag (característica de componente)

Cuando el usuario comienza a arrastrar una característica, la colección principal también recibirá un FeatureStartDragevento. El parámetro de
característica indica qué característica secundaria se arrastró.
FeatureStopDrag (característica de componente)
Cuando el usuario deja de arrastrar una característica, la colección principal también recibirá un FeatureStopDragevento. El parámetro de
característica indica qué característica secundaria se arrastró.
GotFeatures (url de texto, características de la lista)

El evento GotFeatures se ejecuta cuando, cuando se lee con éxito una colección de características de lo dado url. El featuresparámetro será una
lista de descripciones de características que se pueden convertir en componentes utilizando el FeatureFromDescription método.
LoadError (url de texto, características de la lista)

El evento LoadError se ejecuta cuando se produce un error al procesar un documento de colección de características en el lugar
indicado url. El responseCodeparámetro contendrá un código de estado HTTP y el errorMessageparámetro contendrá un mensaje de error detallado.

Métodos
cualquier FeatureFromDescription (descripción de la lista)

Devuelve un nuevo componente basado en la descripción proporcionada. Si hay un error en las propiedades, como datos con formato incorrecto, el
método devolverá un texto que describe el error. Utilice el is-text? bloque para comprobar si el resultado es un mensaje de error. Es un error o
no. Las propiedades de las características se convierten en propiedades de App Inventor utilizando la siguiente asignación que no distingue entre
mayúsculas y minúsculas:

 Descripción → Descripción
 arrastrables → arrastrables
 infobox → EnableInfobox
 llenar → FillColor
 imagen → ImageAsset
 trazo → StrokeColor
 ancho de trazo → StrokeWidth
 título → título
 visible → Visible

LoadFromURL (url de texto)


Llame a este método para cargar una descripción de GeoJSON de una colección de características desde una URL (incluidas las URL de
archivos). Si tiene éxito, el conjunto de características administradas por la colección de características será reemplazado por las nuevas
características y se ejecutará el evento LoadFeatureCollection. Si se produce un error, en su lugar se ejecutará el evento
ErrorLoadingFeatureCollection.

LineString

LineString es un componente para dibujar una secuencia abierta y continua de líneas en un mapa. Para agregar nuevos puntos a un LineString, arrastre el
punto medio de cualquier segmento fuera de la línea para introducir un nuevo vértice. Mueva un vértice haciendo clic y arrastrando el vértice a una nueva
ubicación. Al hacer clic en un vértice se eliminará el vértice.

Propiedades
Descripción

La descripción que se muestra en la ventana de información que aparece cuando el usuario hace clic en la función del mapa.
Arrastrable
Establece u obtiene si el usuario puede arrastrar una cadena de línea presionando prolongadamente y luego arrastrándola a una nueva ubicación.
EnableInfobox
Active o desactive la visualización de la ventana de infobox cuando el usuario toca la función.
Puntos
La lista de puntos, como pares de latitudes y longitudes, en el LineString.
PointsFromString
Una cadena de puntos codificada en GeoJSON para completar el LineString. La edición de LineString en el diseñador actualizará esta propiedad.
Color del trazo
El color de pintura utilizado para delinear la característica del mapa.
Anchura del trazo
El ancho del trazo utilizado para delinear la entidad del mapa.
Título
El título que se muestra en la ventana de información que aparece cuando el usuario hace clic en la función del mapa.
Tipo
Obtiene el tipo de la característica. Para LineString, esto siempre será "LineString",
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.

Eventos
Hacer clic

Se ejecuta cuando el usuario toca o muy cerca de la cadena de línea.


Arrastrar
Se ejecuta durante una operación de arrastre.
LongClick
Se ejecuta después de que el usuario haga largos clics en la cadena de línea, pero no desencadena un arrastre (dentro de un umbral determinado).
StartDrag
Se ejecuta inmediatamente después de que el usuario inicie una operación de arrastre pero antes de cualquier evento de arrastre.
StopDrag
Se ejecuta después de que el usuario libera el LineString de una operación de arrastre.

Métodos
número DistanceToFeature (componente mapFeature, centroides booleanos)

Calcula la distancia entre el LineString y el dado mapFeature. Si centroidses verdadero, el cálculo se realiza entre los centroides de las dos
entidades. Si es falso, la distancia se computará entre las dos características según los puntos más cercanos. Si la cadena lineal se cruza
con mapFeature, este método devolverá 0. Si se produce un error, se devolverá -1.
número DistanceToPoint (latitud del número, longitud del número, centroides booleanos)

Calcula la distancia entre el LineString y el dado latitude y longitude. Si centroidses verdadero, el cálculo se realiza entre el punto medio ponderado
de LineString y el punto. Si es falso, la distancia se calcula desde el punto más cercano en el LineString hasta el punto. Si el punto está en el
LineString, este método devolverá 0. Si ocurre un error, se devolverá -1.
HideInfobox

Oculta el cuadro de información de la cadena de líneas si está visible. De lo contrario, este método no tiene efecto.
ShowInfobox
Muestra el cuadro de información de la cadena de línea si no está visible. De lo contrario, este método no tiene efecto. Este método se puede usar
para mostrar el cuadro de información incluso si EnableInfoboxes falso.

Mapa

Un contenedor bidimensional que representa los mosaicos del mapa en el fondo y permite que múltiples elementos de Marcador identifiquen puntos en el
mapa. Los mosaicos de mapas son suministrados por los colaboradores de OpenStreetMap y el Servicio Geológico de los Estados Unidos.

El componente Mapa proporciona tres utilidades para manipular sus límites dentro de App Inventor. Primero, un mecanismo de bloqueo permite que el mapa
se mueva en relación con otros componentes en la pantalla. En segundo lugar, cuando está desbloqueado, el usuario puede desplazar el mapa a cualquier
ubicación. En esta nueva ubicación, se puede presionar el botón "Establecer límite inicial" para guardar las coordenadas actuales del mapa en sus
propiedades. Por último, si el Mapa se mueve a una ubicación diferente, por ejemplo, para agregar Marcadores fuera de la pantalla, entonces se puede usar
el botón "Restablecer Mapa a Límites Iniciales" para volver a centrar el Mapa en la ubicación inicial.

Propiedades
Cuadro delimitador

Establece u obtiene el límite actual para la vista dibujada del mapa. El valor es una lista de listas que contienen las coordenadas noroeste y sureste
de la vista actual en el formulario ((North West) (South East)).
CenterFromString

Establece el centro del mapa a partir de una cadena de "latitud, longitud" dada. Esto se usa principalmente para poblar el centro del mapa del
diseñador. Vea también el PanTométodo para animar un cambio en el centro del mapa.
EnablePan

Activa o desactiva la capacidad del usuario para mover el mapa.


EnableRotation
Activa o desactiva el gesto de rotación de dos dedos para rotar el mapa.
EnableZoom
Activa o desactiva el gesto de pellizco con dos dedos para acercar el mapa.
Caracteristicas
Establece u obtiene una lista de características presentes en el mapa. Al establecer esto en una lista vacía se borrará el mapa.
Altura
Establece u obtiene la altura del mapa.
Altura en porcentaje
Establece la altura del mapa en un porcentaje de la pantalla.
Latitud
Obtiene la latitud del centro del mapa. Para cambiar la latitud, usa el PanTométodo.
LocationSensor

Utiliza el LocationSensor proporcionado para los datos de ubicación del usuario en lugar del proveedor de ubicación integrado.
Longitud
Obtiene la longitud del centro del mapa. Para cambiar la longitud, usa el PanTométodo.
Tipo de mapa

Establece u obtiene la capa de mosaico utilizada para dibujar el fondo del mapa. Por defecto a las carreteras. Los valores válidos son 1 (Carreteras),
2 (Aéreo) o 3 (Terreno). OpenStreetMap proporciona las capas de carreteras y las capas aéreas y de terreno las proporciona el US Geological
Survey.
ScaleUnits
Establece u obtiene las unidades utilizadas para la superposición de escala. 1 (el valor predeterminado) dará unidades métricas (km, m) mientras
que 2 dará unidades imperiales (mi, ft).
ShowCompass
Muestra u oculta una superposición de brújula en el mapa. La brújula se girará según la orientación del dispositivo si hay una brújula digital en el
hardware.
ShowScale
Muestra u oculta una superposición de escala en el mapa. La escala cambiará con el nivel de zoom y sus unidades pueden ser controladas por
la propiedad ScaleUnits .
ShowUser

Muestra u oculta un icono que indica la ubicación actual del usuario en el mapa. La disponibilidad y la precisión de esta función dependerán de si el
usuario tiene habilitados los servicios de ubicación y qué proveedores de ubicación están disponibles.
ShowZoom
Muestra u oculta los botones de zoom nativos de Android para permitir al usuario acercar o alejar el Mapa. Esto se puede usar en lugar del gesto de
pellizcar para acercar con dos dedos.
UserLatitude
Devuelve la latitud del usuario si ShowUser está habilitado.
UserLongitude
Devuelve la longitud del usuario si ShowUser está habilitado.
Visible
Establece u obtiene si el mapa es visible.
Anchura
Establece u obtiene el ancho del mapa.
WidthPercent
Establece el ancho del mapa en un porcentaje de la pantalla.
Nivel de zoom
Obtiene o establece el nivel de zoom para el mapa. Los valores válidos van desde 1-20. No todas las capas de mosaico admitirán cada nivel de
zoom en cada ubicación. Por ejemplo, es probable que la fotografía aérea detallada no esté disponible para baldosas en medio del océano o en los
polos. Es probable que los niveles de zoom más altos se produzcan en los principales centros urbanos debido a la cantidad de datos detallados
disponibles.

Eventos
BoundsChange

Se ejecuta cuando el usuario cambia los límites del mapa, ya sea haciendo zoom, desplazando o girando la vista.
DoubleTapAtPoint (latitud de número, longitud de número)
Se ejecuta cuando el usuario realiza un doble toque en un punto del mapa. latitude e longitudeindique la ubicación del evento tap en las
coordenadas del mapa. Este evento puede ir seguido de un ZoomChangeevento si los gestos de zoom están habilitados y el mapa no está en el nivel
de zoom más alto posible.
FeatureClick (característica de componente)

Cuando se hace clic en una función, el mapa principal también recibirá un FeatureClick evento. El featureparámetro indica en qué elemento
secundario se hizo clic.
FeatureDrag (característica de componente)
Cuando se arrastra una característica, el mapa principal también recibirá un FeatureDragevento. El featureparámetro indica qué elemento secundario
se arrastró.
FeatureLongClick (característica de componente)

Cuando se hace clic en una característica durante mucho tiempo, el mapa principal también recibirá un FeatureLongClick evento. El featureparámetro
indica en qué elemento secundario se pulsó durante un tiempo.
FeatureStartDrag (característica de componente)

Cuando el usuario comienza a arrastrar una característica, el mapa principal también recibirá un FeatureStartDragevento. El featureparámetro indica
qué elemento secundario se arrastró.
FeatureStopDrag (característica de componente)

Cuando el usuario deja de arrastrar una característica, el mapa principal también recibirá un FeatureStopDragevento. El featureparámetro indica qué
elemento secundario se arrastró.
GotFeatures (url de texto, características de la lista)

El GotFeaturesevento se ejecuta después de una llamada para LoadFromURLleer con éxito la descripción de la característica
de url. El featuresparámetro será una lista de descripciones de características que se pueden convertir en componentes utilizando
el FeatureFromDescription método.
InvalidPoint (mensaje de texto)

Se ejecuta cuando el programa encuentra un punto no válido al procesar datos geográficos. Los puntos se consideran inválidos cuando la latitud o
longitud del punto está fuera del rango aceptable ([-90, 90] y [-180, 180], respectivamente). El messageparámetro contendrá una explicación para el
error.
LoadError (url de texto, código de respuesta de número, mensaje de error de texto)

El evento LoadError se ejecuta cuando el procesamiento de un documento de colección de características en el dado urlproduce un
error. El responseCodeparámetro contendrá un código de estado HTTP y el errorMessageparámetro contendrá un mensaje de error detallado.
LongPressAtPoint (latitud de número, longitud de número)

Se ejecuta cuando el usuario presiona un punto en el mapa. Latitude e longitudeindicar la ubicación de la pulsación larga en las coordenadas del
mapa. Tenga en cuenta que este evento no se activará si EnablePanes verdadero, ya que una pulsación prolongada provoca un evento de
panorámica.
Listo

Se ejecuta cuando el mapa se ha inicializado y está listo para su uso.


TapAtPoint (latitud del número, longitud del número)
Se ejecuta cuando el usuario toca en un punto del mapa. La ubicación marcada se informará en las coordenadas del mapa a través de
los parámetros latitudey longitude.
ZoomCambiar

Se ejecuta cuando el usuario cambia el nivel de zoom, por ejemplo, mediante un gesto de pellizco o pulsando dos veces.

Métodos
componente CreateMarker (número latitud, número longitud)

Crea un nuevo marcador en el mapa en el dado latitude y longitude. El marcador se puede manipular usando los bloques "cualquier componente".
cualquier FeatureFromDescription (descripción de la lista)

Devuelve un nuevo componente basado en la descripción proporcionada. Si hay un error en las propiedades, como datos con formato incorrecto, el
método devolverá un texto que describe el error. Usa el is-text? bloque para comprobar si obtienes un error. Las propiedades de la característica
convertidas en propiedades de App Inventor utilizan el siguiente mapeo insensible a los casos:

 Descripción → Descripción
 arrastrables → arrastrables
 infobox → EnableInfobox
 llenar → FillColor
 imagen → ImageAsset
 trazo → StrokeColor
 ancho de trazo → StrokeWidth
 título → título
 visible → Visible

LoadFromURL (url de texto)


Llame a este método para cargar una colección de características desde una URL (incluidas las URL de archivos). Si el evento es exitoso, las
descripciones de las características se pasan como una lista al GotFeaturesevento. Si falla, LoadErrorse ejecutará el evento. En este momento,
GeoJSON es el único formato compatible.
PanTo (latitud del número, longitud del número, zoom del número)

Desplaza el centro del mapa a lo dado (Latitude Longitude)y hace zoom a lo dado zoom. El movimiento es animado.
Guardar (ruta de texto)

Guarda las descripciones del contenido del mapa en la ruta dada. Actualmente, esto solo guardará las características utilizando el formato
GeoJSON.

Marcador
El componente Marcador indica puntos en un mapa, como edificios o puntos de interés. Los marcadores se pueden personalizar de muchas maneras, como
el uso de imágenes personalizadas de los activos de la aplicación. Los marcadores también pueden crearse dinámicamente usando el CreateMarkermétodo y
configurarse usando los bloques "Cualquier componente".

Propiedades
AnchorHorizontal

Establece u obtiene el desplazamiento horizontal del centro del marcador en relación con su imagen. Los valores válidos son 1 (izquierda), 2
(derecha), 3 (centro)
AnchorVertical
Establece u obtiene el desplazamiento vertical del centro del marcador en relación con su imagen. Los valores válidos son 1 (superior), 2 (centro), 3
(inferior).
Descripción
Establece u obtiene la descripción que se muestra en la ventana de información que aparece cuando el usuario toca el marcador.
Arrastrable
La propiedad arrastrable se usa para controlar si el usuario puede arrastrar el marcador presionando prolongadamente y luego arrastrando el
marcador a una nueva ubicación.
EnableInfobox
Activa o desactiva la visualización de la ventana de infobox cuando el usuario toca el marcador.
Color de relleno
Establece u obtiene el color utilizado para rellenar el marcador. Esta propiedad solo se aplica a los marcadores que utilizan activos de imagen
vectorial, incluido el icono predeterminado.
Altura
Establece u obtiene la altura del marcador, en píxeles.
Altura en porcentaje
Establece la altura del marcador como un porcentaje de la altura de la pantalla.
ImageAsset
Establece u obtiene la imagen mostrada para el marcador. Si se establece en la cadena vacía "", se utilizará el icono de marcador predeterminado.
Latitud

Establece u obtiene la latitud del marcador, en grados, con valores positivos que representan el norte del ecuador y valores negativos que
representan el sur del ecuador. Para actualizar la latitud y la longitud simultáneamente, utilice el SetLocation método.
Longitud

Establece u obtiene la longitud del marcador, en grados, con valores positivos que representan al este del primer meridiano y valores negativos que
representan al oeste del primer meridiano. Para actualizar la latitud y la longitud simultáneamente, utilice el SetLocationmétodo.
Color del trazo

Establece u obtiene el color utilizado para delinear el marcador.


Anchura del trazo
Establece u obtiene el ancho del trazo utilizado para delinear el marcador.
Título
Establece u obtiene el título que se muestra en la ventana de información que aparece cuando el usuario hace clic en el marcador.
Tipo
Obtiene el tipo de la característica. Para Marker, esto siempre será "Marker",
Visible
Establece u obtiene si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Anchura
Establece u obtiene el ancho del marcador, en píxeles.
WidthPercent
Establece el ancho del marcador como un porcentaje del ancho de la pantalla.
Eventos
Hacer clic

Se ejecuta cuando el usuario toca el marcador.


Arrastrar
Se ejecuta continuamente mientras un usuario está arrastrando el marcador.
LongClick
Se ejecuta cuando el usuario hace un clic largo en el marcador pero no activa un arrastre. Tenga en cuenta que este evento solo se ejecutará
si Draggablees falso.
StartDrag

Se ejecuta antes de que comience una operación de arrastre.


StopDrag
Se ejecuta después de que se completa una operación de arrastre.

Métodos
número BearingToFeature (componente mapFeature, centroides booleanos)

Devuelve el rumbo del Marcador al dado mapFeature, en grados desde el norte. Si el centroidsparámetro es verdadero, la marcación será hacia el
centro de la función del mapa. De lo contrario, el rumbo se computará al punto en la característica más cercana al Marcador.
número BearingToPoint (latitud del número, longitud del número, centroides booleanos)

Devuelve la marcación del marcador a la latitud y longitud dadas, en grados desde el norte hacia el norte.
número DistanceToFeature (componente mapFeature, centroides booleanos)
Calcula la distancia entre el marcador y el dado mapFeature. Si centroidses verdadero, el cálculo se realiza entre los centroides de las dos
entidades. De lo contrario, la distancia se computará entre las dos características según los puntos más cercanos. Además, cuando centroidses
falso, este método devolverá 0 si el marcador se interseca o contiene el mapFeature. Si se produce un error, este método devolverá -1.
número DistanceToPoint (latitud del número, longitud del número, centroides booleanos)

Calcula la distancia entre el marcador y la latitud y longitud dadas. Si centroidses cierto, la distancia se calcula desde el centro del círculo hasta el
punto dado. De lo contrario, la distancia se calcula desde el punto más cercano en el marcador hasta el punto dado. Si se produce un error, se
devolverá -1.
HideInfobox

Oculta el cuadro de información del círculo si está visible. De lo contrario, no se tomará ninguna acción.
SetLocation (latitud del número, longitud del número)
Mueve el centro del círculo a la latitud y longitud dadas. Este método es más eficiente que configurar la latitud y la longitud por separado.
ShowInfobox
Muestra el cuadro de información del círculo si no está visible. De lo contrario, no se tomará ninguna acción. Este método se puede usar para
mostrar el cuadro de información incluso si EnableInfobox es falso.

Polígono

Polygon encierra un área bidimensional arbitraria en un mapa. Los polígonos se pueden usar para dibujar un perímetro, como un campus, una ciudad o un
país. Los polígonos comienzan como triángulos básicos. Se pueden crear nuevos vértices arrastrando el punto medio de un polígono desde el borde. Al
hacer clic en un vértice se eliminará el vértice, pero deben existir un mínimo de 3 vértices en todo momento.

Propiedades
Descripción

Establece u obtiene la descripción que se muestra en la ventana de información que aparece cuando el usuario toca el polígono.
Arrastrable
Establece u obtiene si el usuario puede arrastrar el polígono presionando prolongadamente y luego arrastrándolo a una nueva ubicación.
EnableInfobox
Activa o desactiva la visualización de la ventana de infobox cuando el usuario toca el polígono.
Color de relleno
Establece u obtiene el color utilizado para rellenar el polígono.
HolePoints
Establece u obtiene las listas de puntos que comprenden los agujeros del polígono. Los puntos se dan en (Latitude Longitude)pares y se deben dar
en sentido contrario a las agujas del reloj.
HolePointsFromString

Establece la lista de puntos de agujero de una cadena en formato GeoJSON.


Puntos
Establece u obtiene la lista de puntos que comprende el polígono. Los puntos se dan en (Latitude Longitude)pares y se deben dar en el sentido de
las agujas del reloj.
PointsFromString

Establece la lista de puntos de una cadena en formato GeoJSON.


Color del trazo
Establece u obtiene el color utilizado para delinear el polígono.
Anchura del trazo
Establece u obtiene el ancho del trazo utilizado para delinear el polígono.
Título
Establece u obtiene el título que se muestra en la ventana de información que aparece cuando el usuario hace clic en la función del mapa.
Tipo
Obtiene el tipo de la característica. Para Polygon, esto siempre será "Polygon",
Visible
Establece u obtiene si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.

Eventos
Hacer clic

Se ejecuta cuando el usuario toca el polígono.


Arrastrar
Se ejecuta continuamente mientras un usuario está arrastrando el polígono.
LongClick
Se ejecuta cuando el usuario hace un largo clic en el polígono pero no activa un arrastre. Tenga en cuenta que este evento solo se ejecutará
si Draggablees falso.
StartDrag

Se ejecuta antes de que comience una operación de arrastre.


StopDrag
Se ejecuta después de que se completa una operación de arrastre.
Métodos
lista centroide

Devuelve el centroide del polígono como una lista del formulario (Latitude Longitude).
número DistanceToFeature (componente mapFeature, centroide booleano)

Calcula la distancia entre el polígono y la característica de mapa dada. Si los centroides son verdaderos, el cálculo se realiza entre los centroides de
las dos entidades. De lo contrario, la distancia se computará entre las dos características según los puntos más cercanos. Además, si los centroides
son falsos, este método devolverá 0 si el polígono se interseca o contiene el mapaFeature. Si se produce un error, este método devolverá -1.
número DistanceToPoint (latitud del número, longitud del número, centroide booleano)
Calcula la distancia entre el polígono y la latitud y longitud dadas. Si los centroides son verdaderos, la distancia se calcula desde el centro del
polígono hasta el punto dado. De lo contrario, la distancia se calcula desde el punto más cercano en el polígono hasta el punto dado. Además, este
método devolverá 0 si los centroides son falsos y el punto está en el polígono. Si se produce un error, se devolverá -1.
HideInfobox
Oculta el cuadro de información del polígono si está visible. De lo contrario, este método no tiene efecto.
ShowInfobox
Muestra el cuadro de información del polígono si no está visible. De lo contrario, este método no tiene efecto. Este método se puede usar para
mostrar el cuadro de información incluso si EnableInfoboxes falso.

Rectángulo

Los rectángulos son polígonos con latitudes y longitudes fijas para los límites norte, sur, este y oeste. Mover un vértice del rectángulo actualiza los bordes
apropiados en consecuencia.

Propiedades
Descripción

Establece u obtiene la descripción que se muestra en la ventana de información que aparece cuando el usuario toca el rectángulo.
Arrastrable
Establece u obtiene si el usuario puede arrastrar una función del mapa presionando prolongadamente y luego arrastrando el rectángulo a una nueva
ubicación.
EastLongitude
Establece u obtiene la longitud que delimita el rectángulo en el este. Rango: [-180, 180]
EnableInfobox
Activa o desactiva la visualización de la ventana de infobox cuando el usuario toca el rectángulo.
Color de relleno
Establece u obtiene el color utilizado para rellenar el rectángulo.
NorthLatitude
Establece u obtiene la latitud, en grados, delimitando el rectángulo en el norte. Rango: [-90, 90]
Latitud del sur
Establece u obtiene la latitud, en grados, delimitando el rectángulo en el sur. Rango: [-90, 90]
Color del trazo
Establece u obtiene el color utilizado para delinear el rectángulo.
Anchura del trazo
Establece u obtiene el ancho del trazo utilizado para delinear el rectángulo.
Título
Establece u obtiene el título que se muestra en la ventana de información que aparece cuando el usuario hace clic en el rectángulo.
Tipo
Obtiene el tipo de la característica. Para el rectángulo, esto siempre será "Rectángulo",
Visible
Establece u obtiene si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
WestLongitude
Establece u obtiene la longitud, en grados, bordeando el rectángulo en el oeste. Rango: [-180, 180]

Eventos
Hacer clic

Se ejecuta cuando el usuario toca el rectángulo.


Arrastrar
Se ejecuta continuamente mientras un usuario está arrastrando el rectángulo.
LongClick
Se ejecuta cuando el usuario hace un clic largo en el rectángulo pero no activa un arrastre. Tenga en cuenta que este evento solo se ejecutará
si Draggablees falso.
StartDrag

Se ejecuta antes de que comience una operación de arrastre.


StopDrag
Se ejecuta después de que se completa una operación de arrastre.

Métodos
lista de límites

Devuelve el cuadro delimitador del rectángulo en el formato ((North West) (South East)).
centro de la lista

Devuelve el centro del rectángulo como una lista del formulario (Latitude Longitude).
número DistanceToFeature (componente mapFeature, centroides booleanos)

Calcula la distancia entre el Rectángulo y la característica de mapa dada. Si los centroides son verdaderos, el cálculo se realiza entre los centroides
de las dos entidades. De lo contrario, la distancia se computará entre las dos características según los puntos más cercanos. Además, cuando los
centroides son falsos, este método devolverá 0 si el rectángulo se interseca o contiene mapFeature. Si se produce un error, este método devolverá -1.
número DistanceToPoint (latitud del número, longitud del número, centroides booleanos)

Calcula la distancia entre el Rectángulo y la latitud y longitud dadas. Si los centroides son verdaderos, la distancia se calcula desde el centro del
rectángulo hasta el punto dado. De lo contrario, la distancia se calcula desde el punto más cercano en el rectángulo hasta el punto dado. Además,
este método devolverá 0 si los centroides son falsos y el punto está en el rectángulo. Si se produce un error, se devolverá -1.
HideInfobox
Oculta el cuadro de información del rectángulo si está visible. De lo contrario, este método no tiene efecto.
SetCenter (latitud numérica, longitud numérica)
Mueve el rectángulo de modo que se centre en lo dado latitude y, al mismo longitudetiempo, intenta mantener el ancho y la altura del rectángulo,
medido desde el centro hasta los bordes.
ShowInfobox
Muestra el cuadro de información para el rectángulo si no está visible. De lo contrario, este método no tiene efecto. Este método se puede usar para
mostrar el cuadro de información incluso si EnableInfobox es falso.

Componentes del sensor - App Inventor para Android

Tabla de contenido
 Sensor acelerómetro
 escáner de código de barras
 Reloj
 Sensor de giroscopio
 LocationSensor
 Campo cercano
 OrientationSensor
 Podómetro
 ProximitySensor

Sensor acelerómetro
Componente no visible que puede detectar temblores y medir la aceleración aproximadamente en tres dimensiones utilizando unidades SI (m / s 2 ). Los
componentes son:

 xAccel : 0 cuando el teléfono está en reposo sobre una superficie plana, positivo cuando el teléfono está inclinado hacia la derecha (es decir, su lado
izquierdo está levantado) y negativo cuando el teléfono está inclinado hacia la izquierda (es decir, su tamaño correcto es elevado).
 yAcel : 0 cuando el teléfono está en reposo sobre una superficie plana, positivo cuando se levanta la parte inferior y negativo cuando se levanta la
parte superior.
 zAccel : igual a -9.8 (la gravedad de la tierra en metros por segundo por segundo cuando el dispositivo está en reposo paralelo al suelo con la
pantalla hacia arriba, 0 cuando está perpendicular al suelo y +9.8 cuando está hacia abajo. El valor también puede ser afectados por la aceleración
con o contra la gravedad.
Propiedades
Available

Enabled

LegacyMode (solo diseñador)

Antes del lanzamiento que agregó esta propiedad, el componente AccelerometerSensor pasó a través de los valores del sensor directamente como
se recibió del sistema Android. Sin embargo, estos valores no compensan las tabletas que tienen como valor predeterminado el modo Paisaje, lo que
requiere que el programador de MIT App Inventor compense. Sin embargo, la compensación resultaría en resultados incorrectos en los dispositivos
en modo retrato, como los teléfonos. Ahora detectamos tabletas en modo horizontal y realizamos la compensación. Sin embargo, si su proyecto ya
está compensando el cambio, ahora obtendrá resultados incorrectos. Aunque nuestra solución preferida es que usted actualice su proyecto, también
puede configurar esta propiedad como "verdadera" y nuestro código de compensación se desactivará. Nota:
MinimumInterval
El intervalo mínimo, en milisegundos, entre sacudidas telefónicas
Sensitivity
Un número que codifica la sensibilidad del acelerómetro. Las opciones son: 1 = débil, 2 = moderado, 3 = fuerte.
XAccel
YAccel

ZAccel

Eventos
AccelerationChanged(number xAccel, number yAccel, number zAccel)
Indica la aceleración cambiada en las dimensiones X, Y y / o Z.
Shaking()
Indica que el dispositivo comenzó a agitarse o continúa agitándose.
Métodos
ninguna

escáner de código de barras

Componente para usar el escáner de código de barras para leer un código de barras

Propiedades
Result

Resultado del texto del escaneo anterior.


UseExternalScanner
Si es cierto, App Inventor buscará y utilizará un programa de escaneo externo como "Escáner de código de barras".

Eventos
AfterScan(text result)
Indica que el escáner ha leído un resultado (texto) y proporciona el resultado

Métodos
DoScan()
Comienza un escaneo de código de barras, utilizando la cámara. Cuando se complete el escaneo, se levantará el evento AfterScan.

Reloj
Componente no visible que proporciona el instante en el tiempo utilizando el reloj interno del teléfono. Puede disparar un temporizador a intervalos regulares
y realizar cálculos de tiempo, manipulaciones y conversiones.
Las operaciones en fechas y horas, como las de DatePicker y TimePicker , se realizan a través de los métodos en Reloj. La fecha y la hora se representan
como InstantInTime y Duración.

 Instantáneo : consta de Año, Mes, Día del Mes, Hora, Minuto y Segundo. Se puede crear un instante usando el método MakeInstant.
 Duración : tiempo en milisegundos transcurrido entre instantes. La duración se puede obtener por el método de duración.

Se asume que los instantes están en la zona horaria local del dispositivo. Cuando se convierten a milisegundos o desde ellos, los milisegundos para una
instancia determinada se calculan a partir del 1 de enero de 1970 en UTC (hora media de Greenwich).
Los métodos para convertir un Instant a texto también están disponibles. Los patrones aceptables son cadenas vacías, MM / dd / YYYY HH: mm: ss a, o
MMM d, yyyy HH: mm. La cadena vacía proporcionará el formato predeterminado, que es "MMM d, aaaa HH: mm: ss a" para FormatDateTime, "MMM d,
aaaa" para FormatDate. Para ver todos los formatos posibles, por favor vea aquí .

Una nota sobre la combinación de fecha y hora: para combinar la fecha de un Instant y la hora de otro, por ejemplo, de un DatePicker y TimePicker, extraiga
las partes como texto y use el texto para crear un nuevo Instant.

Ejemplo:
Propiedades
TimerAlwaysFires
Se disparará incluso cuando la aplicación no se muestre en la pantalla si es verdadera
TimerEnabled
Temporizador de incendios si es verdadero
TimerInterval
Intervalo entre eventos de temporizador en ms

Eventos
Timer()
El temporizador se ha apagado.

Métodos
InstantInTime AddDays(InstantInTime instant, number days)
Devuelve un instante en el tiempo unos días después del argumento.
InstantInTime AddDuration(InstantInTime instant, Duration duration)
Devuelve un instante en el tiempo un tiempo después del argumento. La duración se puede obtener de Clock.Duration ()
InstantInTime AddHours(InstantInTime instant, number hours)
Devuelve un instante en el tiempo unas horas después del argumento.
InstantInTime AddMinutes(InstantInTime instant, number minutes)
Devuelve un instante en el tiempo unos minutos después del argumento.
InstantInTime AddMonths(InstantInTime instant, number months)
Devuelve un instante en el tiempo algunos meses después del argumento.
InstantInTime AddSeconds(InstantInTime instant, number seconds)
Devuelve un instante en el tiempo unos segundos después del argumento.
InstantInTime AddWeeks(InstantInTime instant, number weeks)
Devuelve un instante en el tiempo unas semanas después del argumento.
InstantInTime AddYears(InstantInTime instant, number years)
Devuelve un instante en el tiempo algunos años después del argumento.
number DayOfMonth(InstantInTime instant)
Devuelve el día del mes (1-31) desde el instante
Duration Duration(InstantInTime start, InstantInTime end)
Devuelve la duración, que es milisegundos transcurridos entre instantes
number DurationToSeconds(Duration duration)
Convierte la duración en el número de segundos.
number DurationToMinutes(Duration duration)
Convierte la duración en el número de minutos.
number DurationToHours(Duration duration)
Convierte la duración al número de horas.
number DurationToDays(Duration duration)
Convierte la duración en el número de días.
number DurationToWeeks(Duration duration)
Convierte la duración al número de semanas.
text FormatDate(InstantInTime instant, text pattern)
Devuelve el texto que representa la fecha de un instante en el patrón especificado
text FormatDateTime(InstantInTime instant, text pattern)
Devuelve el texto que representa la fecha y la hora de un instante en el patrón especificado
text FormatTime(InstantInTime instant)
Devuelve el texto que representa la hora de un instante en la zona horaria local del dispositivo.
number GetMillis(InstantInTime instant)
Devuelve el instante en el tiempo medido en milisegundos desde 1970 en UTC (Greenwich Mean Time).
number Hour(InstantInTime instant)
Devuelve la hora del día (0-23) desde el instante
InstantInTime MakeInstant(text from)
Devuelve un instante especificado por MM / dd / YYYY hh: mm: ss o MM / dd / YYYY o hh: mm. Un ejemplo de entrada de texto es "22/06/2015
12:18"
InstantInTime MakeInstantFromMillis(number millis)
Devuelve un instante en el tiempo especificado por los milisegundos desde 1970 en UTC.
number Minute(InstantInTime instant)
Devuelve el minuto de la hora (0-59) del instante.
number Month(InstantInTime instant)
Devuelve el mes del año (1-12) desde el instante.
text MonthName(InstantInTime instant)
Devuelve el nombre del mes del instante. Por ejemplo, enero, febrero, marzo ...
InstantInTime Now()
Devuelve un instante de la hora actual leída del reloj del teléfono.
number Second(InstantInTime instant)
Devuelve el segundo del minuto (0-59) del instante.
number SystemTime()
Devuelve el tiempo interno del teléfono.
number Weekday(InstantInTime instant)
Devuelve el día de la semana representado como un número de 1 (domingo) a 7 (sábado)
text WeekdayName(InstantInTime instant)
Devuelve el nombre del día de la semana desde el instante.
number Year(InstantInTime instant)
Devuelve el año desde el instante.

Sensor de giroscopio

Componente no visible que puede medir la velocidad angular en tres dimensiones en unidades de grados por segundo.
Para funcionar, el componente debe tener su Enabledpropiedad establecida en Verdadero y el dispositivo debe tener un sensor de giroscopio.
Propiedades
Available

Indica si un sensor de giroscopio está disponible.


Enabled
Si está habilitado, entonces los eventos de sensor serán generados y XAngularVelocity, YAngularVelocityy ZAngularVelocitypropiedades tendrán
valores significativos.

XAngularVelocity

La velocidad angular alrededor del eje X, en grados por segundo.


YAngularVelocity
La velocidad angular alrededor del eje Y, en grados por segundo.
ZAngularVelocity
La velocidad angular alrededor del eje Z, en grados por segundo.

Eventos
GyroscopeChanged(number xAngularVelocity, number yAngularVelocity, number zAngularVelocity, number timestamp)
Indica que los datos del sensor del giroscopio han cambiado. El timestampparámetro es el tiempo en nanosegundos en que ocurrió el evento.

Métodos
ninguna

LocationSensor
Componente no visible que proporciona información de ubicación, incluida la longitud, latitud, altitud (si es compatible con el dispositivo), velocidad (si es
compatible con el dispositivo) y dirección. Esto también puede realizar "geocodificación", convirtiendo una dirección dada (no necesariamente la actual) a una
latitud (con el LatitudeFromAddressmétodo) y una longitud (con el LongitudeFromAddressmétodo).
Para poder funcionar, el componente debe tener su Enabledpropiedad establecida en Verdadero, y el dispositivo debe tener habilitada la detección de
ubicación a través de redes inalámbricas o satélites GPS (si está en el exterior).
Es posible que la información de ubicación no esté disponible de inmediato cuando se inicia una aplicación. Tendrá que esperar un corto tiempo para que se
encuentre y se use un proveedor de ubicación, o esperar el evento OnLocationChanged

Propiedades
Accuracy

Altitude

AvailableProviders

CurrentAddress

DistanceInterval
Determina el intervalo de distancia mínimo, en metros, que el sensor intentará usar para enviar actualizaciones de ubicación. Por ejemplo, si se
establece en 5, entonces el sensor activará un evento LocationChanged solo después de haber recorrido 5 metros. Sin embargo, el sensor no
garantiza que se recibirá una actualización exactamente en el intervalo de distancia. Puede tomar más de 5 metros para disparar un evento, por
ejemplo.
Enabled
HasAccuracy

HasAltitude

HasLongitudeLatitude

Latitude

Longitude

ProviderLocked

ProviderName

TimeInterval
Determina el intervalo de tiempo mínimo, en milisegundos, que el sensor intentará utilizar para enviar actualizaciones de ubicación. Sin embargo, las
actualizaciones de ubicación solo se recibirán cuando la ubicación del teléfono realmente cambie, y no se garantiza el uso del intervalo de tiempo
especificado. Por ejemplo, si se usa 1000 como intervalo de tiempo, las actualizaciones de ubicación nunca se activarán antes de 1000 ms, pero se
pueden activar en cualquier momento después.

Eventos
LocationChanged(number latitude, number longitude, number altitude, number speed)
Indica que se ha detectado una nueva ubicación.
StatusChanged(text provider, text status)
Indica que el estado del servicio del proveedor de ubicación ha cambiado, por ejemplo, cuando se pierde un proveedor o se comienza a usar un
nuevo proveedor.

Métodos
number LatitudeFromAddress(text locationName)
Deriva la latitud de la dirección dada.
number LongitudeFromAddress(text locationName)
Deriva longitud de dirección dada

Campo cercano

Componente no visible para proporcionar capacidades NFC. Por ahora, este componente admite la lectura y escritura de etiquetas de texto solamente (si el
dispositivo lo admite)
Para leer y escribir etiquetas de texto, el componente debe tener su ReadModepropiedad establecida en Verdadero o Falso, respectivamente.
Nota: este componente solo funcionará en la Pantalla 1 de cualquier aplicación de App Inventor.

Propiedades
LastMessage
ReadMode

TextToWrite
WriteType

Eventos
TagRead(text message)
Indica que se ha detectado una nueva etiqueta. Actualmente, esta es solo una etiqueta de texto plano, como se especifica en el manifiesto. Ver
Compiler.java.
TagWritten()
Evento para TagWritten

Métodos
ninguna

OrientationSensor

Use un componente sensor de orientación para determinar la orientación espacial del teléfono.

Un sensor de orientación es un componente no visible que informa los siguientes tres valores, en grados:

 Rollo : 0 grados cuando el dispositivo está nivelado, aumentando a 90 grados a medida que el dispositivo se inclina hacia arriba sobre su lado
izquierdo, y disminuye a −90 grados cuando el dispositivo se inclina hacia arriba sobre su lado derecho.
 Inclinación : 0 grados cuando el dispositivo está nivelado, aumentando a 90 grados a medida que el dispositivo está inclinado de modo que su parte
superior apunte hacia abajo, y luego disminuya a 0 grados a medida que se gira. De manera similar, a medida que el dispositivo se inclina hacia
abajo, su parte inferior apunta hacia abajo, el tono disminuye a -90 grados, luego aumenta a 0 grados a medida que se gira completamente.
 Azimut : 0 grados cuando la parte superior del dispositivo apunta al norte, 90 grados cuando apunta al este, 180 grados cuando apunta al sur, 270
grados cuando apunta al oeste, etc.

Estas medidas asumen que el dispositivo en sí no se está moviendo.

Propiedades
Available
Indica si el sensor de orientación está presente en el dispositivo Android.
Enabled
Si está configurado, el sensor de orientación está habilitado.
Azimuth
Devuelve el ángulo acimutal del dispositivo.
Pitch
Devuelve el ángulo de inclinación del dispositivo.
Roll
Devuelve el ángulo de balanceo del dispositivo.
Magnitude
Devuelve un número entre 0 y 1 que indica la inclinación del dispositivo. Proporciona la magnitud de la fuerza que sentiría una bola que rueda sobre
la superficie del dispositivo.
Angle
Devuelve un ángulo que indica la dirección en la que se coloca el dispositivo en mosaico. Es decir, indica la dirección de la fuerza que sentiría una
bola que rueda sobre la superficie del dispositivo.

Eventos
OrientationChanged(number azimuth, number pitch, number roll)
Llamado cuando la orientación ha cambiado.

Podómetro

Un componente que actúa como un podómetro. Detecta el movimiento a través del Accerleromter e intenta determinar si se ha dado un paso. Usando una
longitud de zancada configurable, también puede estimar la distancia recorrida.

Propiedades
Distance

La distancia aproximada recorrida en metros.


ElapsedTime
Tiempo transcurrido en milisegundos desde que se inició el podómetro.
SimpleSteps
El número de pasos simples tomados desde que se inició el podómetro.
StopDetectionTimeout
La duración en milisegundos de inactividad (no se detectan pasos) después de lo cual se pasa a un estado "detenido"
StrideLength
Establezca la longitud promedio de zancada en metros.
WalkSteps
el número de pasos para caminar desde que se inició el podómetro.

Eventos
SimpleStep(number simpleSteps, number distance)
Este evento se ejecuta cuando se detecta un paso en bruto
WalkStep(number walkSteps, number distance)
Este evento se ejecuta cuando se detecta un paso de caminar. Un paso para caminar es un paso que parece estar involucrado en el movimiento
hacia adelante.
Métodos
Pause()
Pausa el conteo de pasos y distancia.
Reset()
Restablece el contador de pasos, la medida de la distancia y el tiempo de ejecución.
Resume()
Curriculum vitae contando, sinónimo de inicio.
Save()
Guarda el estado del podómetro en el teléfono. Los permisos permiten la acumulación de pasos y la distancia entre invocaciones de una aplicación
que utiliza el podómetro. Las diferentes aplicaciones tendrán su propio estado guardado.
Start()
Empezar a contar los pasos
Stop()
Deja de contar los pasos

ProximitySensor

Un componente sensor que puede medir la proximidad de un objeto (en cm) en relación con la pantalla de visualización de un dispositivo. Este sensor se usa
normalmente para determinar si un auricular se está sujetando al oído de una persona; es decir, le permite determinar qué tan lejos está un objeto de un
dispositivo. Muchos dispositivos devuelven la distancia absoluta, en cm, pero algunos solo devuelven valores cercanos y lejanos. En este caso, el sensor
generalmente informa su valor de rango máximo en el estado lejano y un valor menor en el estado cercano. Se reporta el siguiente valor:

 Distancia : La distancia del objeto al dispositivo.

Propiedades
Available
Informa si el dispositivo tiene o no un sensor de proximidad
Enabled
Si está habilitado, entonces el dispositivo escuchará los cambios en la proximidad
KeepRunningWhenOnPause
Si se establece en verdadero, seguirá detectando cambios de proximidad incluso cuando la aplicación no esté visible
Distance
Devuelve la distancia del objeto al dispositivo.
MaximumRange
Informa el rango máximo del sensor de proximidad del dispositivo.

Eventos
ProximityChanged(number distance)
Se llama cuando cambia la distancia (en cm) del objeto al dispositivo.

Componentes Sociales - App Inventor para Android

Tabla de contenido
 ContactPicker
 EmailPicker
 Llamada telefónica
 PhoneNumberPicker
 Compartir
 Mensajes de texto
 Gorjeo
ContactPicker

Un botón que, al hacer clic en, muestra una lista de los contactos para elegir. Después de que el usuario haya realizado una selección, las siguientes
propiedades se configurarán para obtener información sobre el contacto elegido:

 ContactName: el nombre del contacto


 EmailAddress: la dirección de correo electrónico principal del contacto
 EmailAddressList: una lista de las direcciones de correo electrónico del contacto
 ContactUri: el URI del contacto en el dispositivo
 PhoneNumber: el número de teléfono principal del contacto (en las versiones posteriores de Android)
 PhoneNumberList: una lista de los números de teléfono del contacto (en versiones posteriores de Android)
 Picture: el nombre del archivo que contiene la imagen del contacto, que se puede usar como Picturevalor de propiedad para
el componente Imageo ImageSprite.

Otras propiedades afectan a la apariencia del botón ( TextAlignment, BackgroundColor, etc.) y si se puede hacer clic en ( Enabled).

El componente ContactPicker puede no funcionar en todos los teléfonos. Por ejemplo, en los sistemas Android anteriores al sistema 3.0, no puede
seleccionar números de teléfono y la lista de direcciones de correo electrónico contendrá solo un correo electrónico.

Propiedades
BackgroundColor
Devuelve el color de fondo del botón.
ContactName
EmailAddress

ContactUri

URI que especifica la ubicación del contacto en el dispositivo.


Enabled
FontBold (solo diseñador)
FontItalic (solo diseñador)

FontSize (solo diseñador)

FontTypeface (solo diseñador)

Height

Image
Especifica la ruta de acceso de la imagen del botón. Si hay una imagen y un color de fondo, solo la imagen será visible.
Picture
Shape (solo diseñador)

Especifica la forma del botón (predeterminado, redondeado, rectangular, ovalado). La forma no será visible si se muestra una imagen.
ShowFeedback
Especifica si se debe mostrar una retroalimentación visual para un botón que como imagen como fondo.
Text
TextAlignment (solo diseñador)

TextColor

Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width

Eventos
AfterPicking()
Evento simple que se generará después de que la actividad del selector devuelva su resultado y se hayan completado las propiedades.
BeforePicking()
Evento simple que se genera cuando se hace clic en el componente pero antes de que se inicie la actividad del selector.
GotFocus()
Indica el cursor movido sobre el botón, por lo que ahora es posible hacer clic en él.
LostFocus()
Indica el cursor alejado del botón, por lo que ya no es posible hacer clic en él.

Métodos
Open()
Abre el selector, como si el usuario hiciera clic en él.
ViewContact(uri)
Visualiza un contacto dado su URI.

EmailPicker

Un EmailPicker es un tipo de cuadro de texto. Si el usuario comienza a ingresar el nombre o la dirección de correo electrónico de un contacto, el teléfono
mostrará un menú desplegable de opciones que completan la entrada. Si hay muchos contactos, el desplegable puede tardar varios segundos en aparecer y
puede mostrar resultados intermedios mientras se calculan las coincidencias.
El contenido inicial del cuadro de texto y el contenido <después de la entrada del usuario está en la Textpropiedad. Si la Textpropiedad está inicialmente
vacía, el contenido de la Hintpropiedad se mostrará débilmente en el cuadro de texto como una sugerencia para el usuario.
Otras propiedades afectan a la apariencia del cuadro de texto ( TextAlignment, BackgroundColor, etc.) y si se puede utilizar ( Enabled).
Los cuadros de texto como este generalmente se usan con Buttoncomponentes, con el usuario haciendo clic en el botón cuando se completa la entrada de
texto.

Métodos
RequestFocus()
Establece el EmailPicker activo.
Propiedades
BackgroundColor
El color de fondo del cuadro de entrada. Puede elegir un color por nombre en el Diseñador o en el Editor de bloques. El color de fondo
predeterminado es 'predeterminado' (aspecto tridimensional sombreado).
Enabled
Si el usuario puede introducir texto en este cuadro de entrada. Por defecto, esto es cierto.
FontBold (solo diseñador)
Si la fuente para el texto debe ser negrita. Por defecto, no lo es.
FontItalic (solo diseñador)
Si el texto debe aparecer en cursiva. Por defecto, no lo hace.
FontSize
El tamaño de letra para el texto. Por defecto, es 14.0 puntos.
FontTypeface (solo diseñador)
La fuente para el texto. El valor se puede cambiar en el Diseñador.
Height
Hint
Texto que debería aparecer débilmente en el cuadro de entrada para proporcionar una pista sobre lo que el usuario debe ingresar. Esto solo se
puede ver si la Textpropiedad está vacía.

Text
El texto en el cuadro de entrada, que puede ser establecido por el programador en el Diseñador o en el Editor de Bloques, o puede ser ingresado por
el usuario (a menos que la Enabledpropiedad sea falsa).

TextAlignment (solo diseñador)

Si el texto debe ser justificado a la izquierda, centrado o justificado a la derecha. Por defecto, el texto está justificado a la izquierda.
TextColor
El color del texto. Puede elegir un color por nombre en el Diseñador o en el Editor de bloques. El color de texto predeterminado es negro.
Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width

Eventos
GotFocus()
Evento generado cuando se selecciona este componente para la entrada, como cuando el usuario lo toca.
LostFocus()
Evento generado cuando este componente ya no se selecciona para la entrada, como si el usuario toca un cuadro de texto diferente.

Métodos
ninguna

Llamada telefónica

Un componente no visible que realiza una llamada telefónica al número especificado en la PhoneNumberpropiedad, que se puede configurar en el Diseñador o
en el Editor de bloques. El componente tiene un MakePhoneCallmétodo que permite al programa iniciar una llamada telefónica.
A menudo, este componente se usa con el ContactPickercomponente, que permite al usuario seleccionar un contacto de los que están almacenados en el
teléfono y establecer la PhoneNumberpropiedad en el número de teléfono del contacto.
Para especificar directamente el número de teléfono (por ejemplo, 650-555-1212), configure la PhoneNumberpropiedad en un Texto con los dígitos
especificados (por ejemplo, "6505551212"). Se pueden incluir guiones, puntos y paréntesis (por ejemplo, "(650) -555-1212") pero se ignorarán; Los espacios
no pueden ser incluidos.

Propiedades
PhoneNumber
Eventos
IncomingCallAnswered(text phoneNumber)

Evento que indica que se responde una llamada telefónica entrante. phoneNumber es el número de teléfono de la llamada entrante. El uso de este
bloque agregará permisos peligrosos que requerirán una aprobación adicional si su aplicación se envía a Google Play Store.

PhoneCallEnded(number status, text phoneNumber)


Evento que indica que una llamada telefónica ha finalizado. Si el estado es 1, la llamada entrante se pierde o se rechaza; si el estado es 2, la llamada
entrante se responde antes de colgar; Si el estado es 3, la llamada saliente se cuelga. phoneNumber es el número de teléfono de la llamada
finalizada. El uso de este bloque agregará permisos peligrosos que requerirán una aprobación adicional si su aplicación se envía a Google Play Store.

PhoneCallStarted(number status, text phoneNumber)


Evento que indica que se ha iniciado una llamada telefónica. Si el estado es 1, la llamada entrante está sonando; Si el estado es 2, se marca la
llamada saliente. phoneNumber es el número de teléfono entrante / saliente. El uso de este bloque agregará permisos peligrosos que requerirán una
aprobación adicional si su aplicación se envía a Google Play Store.

Métodos
MakePhoneCall()
Inicia la aplicación de marcación predeterminada del teléfono para iniciar una llamada telefónica.
MakePhoneCallDirect()
Hace una llamada telefónica usando el número en la propiedad PhoneNumber. Este bloque está dirigido a desarrolladores avanzados que desean
crear aplicaciones que puedan actuar como la aplicación de llamada telefónica predeterminada en un teléfono. El uso de este bloque
agregará permisos peligrosos que requerirán una aprobación adicional si su aplicación se envía a Google Play Store.

PhoneNumberPicker

Un botón que, al hacer clic en, muestra una lista de los números de teléfono de los contactos para elegir. Después de que el usuario haya realizado una
selección, las siguientes propiedades se configurarán para obtener información sobre el contacto elegido:
 ContactName: el nombre del contacto
 PhoneNumber: el número de teléfono del contacto
 EmailAddress: la dirección de correo electrónico del contacto
 Picture: el nombre del archivo que contiene la imagen del contacto, que se puede usar como Picturevalor de propiedad para
el componente Imageo ImageSprite.

Otras propiedades afectan a la apariencia del botón ( TextAlignment, BackgroundColor, etc.) y si se puede hacer clic en ( Enabled).

El componente PhoneNumberPicker puede no funcionar en todos los dispositivos Android. Por ejemplo, en los sistemas Android anteriores al sistema 3.0, las
listas devueltas de números de teléfono y direcciones de correo electrónico estarán vacías.

Propiedades
BackgroundColor
Devuelve el color de fondo del botón.
ContactName
EmailAddress

Enabled

FontBold (solo diseñador)

FontItalic (solo diseñador)

FontSize (solo diseñador)

FontTypeface (solo diseñador)

Height

Image
Especifica la ruta de acceso de la imagen del botón. Si hay una imagen y un color de fondo, solo la imagen será visible.
PhoneNumber
Picture

Shape (solo diseñador)

Especifica la forma del botón (predeterminado, redondeado, rectangular, ovalado). La forma no será visible si se muestra una imagen.
ShowFeedback
Especifica si se debe mostrar una retroalimentación visual para un botón que como imagen como fondo.
Text
TextAlignment (solo diseñador)

TextColor

Visible
Especifica si el componente debe ser visible en la pantalla. El valor es verdadero si el componente se muestra y falso si está oculto.
Width

Eventos
AfterPicking()
Evento simple que se generará después de que la actividad del selector devuelva su resultado y se hayan completado las propiedades.
BeforePicking()
Evento simple que se genera cuando se hace clic en el componente pero antes de que se inicie la actividad del selector.
GotFocus()
Indica el cursor movido sobre el botón, por lo que ahora es posible hacer clic en él.
LostFocus()
Indica el cursor alejado del botón, por lo que ya no es posible hacer clic en él.

Métodos
Open()
Abre el selector, como si el usuario hiciera clic en él.

Compartir
Compartir es un componente no visible que permite compartir archivos y / o mensajes entre su aplicación y otras aplicaciones instaladas en un dispositivo. El
componente mostrará una lista de las aplicaciones instaladas que pueden manejar la información proporcionada, y permitirá al usuario elegir una para
compartir el contenido, por ejemplo, una aplicación de correo, una aplicación de red social, una aplicación de mensajes de texto, etc.
La ruta del archivo se puede tomar directamente de otros componentes como la cámara o el ImagePicker, pero también se puede especificar directamente
para leer desde el almacenamiento. Tenga en cuenta que los diferentes dispositivos tratan el almacenamiento de manera diferente, por lo tanto, algunas
cosas que debe probar si, por ejemplo, tiene un archivo llamado arrow.gif en la carpeta Appinventor/assets, sería:

 "file:///sdcard/Appinventor/assets/arrow.gif"

 "/storage/Appinventor/assets/arrow.gif"

Propiedades
ninguna

Eventos
ninguna

Métodos
ShareFile(text file)
Comparte un archivo a través de cualquier aplicación compatible instalada en el teléfono al mostrar una lista de las aplicaciones disponibles y permitir
que el usuario elija una de la lista. La aplicación seleccionada se abrirá con el archivo insertado.
ShareFileWithMessage(text file, text message)
Comparte un archivo y un mensaje a través de cualquier aplicación compatible instalada en el teléfono, mostrando una lista de aplicaciones
disponibles y permitiendo al usuario elegir una de la lista. La aplicación seleccionada se abrirá con el archivo y el mensaje insertados en ella.
ShareMessage(text message)
Comparte un mensaje a través de cualquier aplicación compatible instalada en el teléfono al mostrar una lista de las aplicaciones disponibles y
permitir que el usuario elija una de la lista. La aplicación seleccionada se abrirá con el mensaje insertado.

Mensajes de texto

Un componente que, cuando SendMessage se llame al método, enviará el mensaje de texto especificado en la Message propiedad al número de teléfono
especificado en la PhoneNumber propiedad.
Si la ReceivingEnabled propiedad se establece en 1 mensajes no se recibirán. Si ReceivingEnabled se establece en 2, solo se recibirán mensajes cuando la
aplicación se esté ejecutando. Finalmente, si ReceivingEnabled se establece en 3, los mensajes se recibirán cuando la aplicación se esté ejecutando y cuando
la aplicación no se esté ejecutando, se pondrán en cola y se mostrará una notificación al usuario.
Cuando llega un mensaje, el MessageReceived evento se genera y proporciona el número y el mensaje de envío.

Una aplicación que incluya este componente recibirá mensajes incluso cuando esté en segundo plano (es decir, cuando no esté visible en la pantalla) y, más
aún, incluso si la aplicación no se está ejecutando, siempre que esté instalada en el teléfono. Si el teléfono recibe un mensaje de texto cuando la aplicación
no está en primer plano, el teléfono mostrará una notificación en la barra de notificaciones. Seleccionando la notificación se abrirá la aplicación. Como
desarrollador de aplicaciones, probablemente querrá dar a sus usuarios la capacidad de controlar ReceivingEnabled para que puedan hacer que el teléfono
ignore los mensajes de texto.
Si la propiedad GoogleVoiceEnabled es verdadera, los mensajes pueden enviarse a través de Wifi usando Google Voice. Esta opción requiere que el usuario
tenga una cuenta de Google Voice y que la aplicación de Mobile Voice esté instalada en el teléfono. La opción Google Voice funciona solo en teléfonos que
admiten Android 2.0 (Eclair) o superior. El uso de este bloque agregará permisos peligrosos que requerirán una aprobación adicional si su aplicación se envía a
Google Play Store.
Para especificar el número de teléfono (por ejemplo, 650-555-1212), configure la PhoneNumber propiedad en una cadena de texto con los dígitos especificados
(por ejemplo, 6505551212). Se pueden incluir guiones, puntos y paréntesis (por ejemplo, (650) -555-1212) pero se ignorarán; Los espacios no pueden ser
incluidos.
Otra forma para que una aplicación especifique un número de teléfono sería incluir un PhoneNumberPicker componente, que permita a los usuarios seleccionar
un número de teléfono de los que están almacenados en los contactos del teléfono.
Propiedades
GoogleVoiceEnabled
Si es verdadero, entonces SendMessage intentará enviar mensajes a través de Wifi utilizando Google Voice. Esto requiere que la aplicación Google
Voice se instale y configure en el teléfono o tableta, con una cuenta de Google Voice. Si GoogleVoiceEnabled es falso, el dispositivo debe tener
teléfono y servicio de mensajes de texto para enviar o recibir mensajes con este componente.
Message
El mensaje que se enviará cuando se llame al método SendMessage.
PhoneNumber
El número al que se enviará el mensaje cuando se llame al método SendMessage. El número es una cadena de texto con los dígitos especificados
(por ejemplo, 6505551212). Se pueden incluir guiones, puntos y paréntesis (por ejemplo, (650) -555-1212) pero se ignorarán; No se deben incluir
espacios.
ReceivingEnabled
Si se establece en 1 (OFF), no se recibirán mensajes. Si se establece en 2 (FOREGROUND) o3 (SIEMPRE), el componente responderá a los
mensajes si se está ejecutando. Si theapp no se está ejecutando, el mensaje se descartará si se establece en 2 (FOREGROUND). Si se establece
en 3 (SIEMPRE) y la aplicación no está funcionando, el teléfono mostrará una notificación. Al seleccionar la notificación, aparecerá la aplicación y
señalará el evento MessageReceived. Los mensajes recibidos cuando la aplicación está inactiva se pondrán en cola, por lo que varios eventos
MessageReceived pueden aparecer cuando la aplicación se despierta. Como desarrollador de aplicaciones,

Eventos
MessageReceived(text number, text messageText)

Evento que se genera cuando el teléfono recibe un mensaje de texto. El uso de este bloque agregará permisos peligrosos que requerirán una
aprobación adicional si su aplicación se envía a Google Play Store.

Métodos
SendMessage()
Inicie la aplicación de mensajes de texto predeterminada del teléfono con el mensaje y el número de teléfono previamente rellenados.
SendMessageDirect()
Enviar un mensaje de texto. El uso de este bloque agregará permisos peligrosos que requerirán una aprobación adicional si su aplicación se envía a Google
Play Store.

Gorjeo
Un componente no visible que permite la comunicación con Twitter . Una vez que un usuario ha iniciado sesión en su cuenta de Twitter (y la autorización ha
sido confirmada exitosamente por el IsAuthorizedevento), muchas más operaciones están disponibles:

 Buscando en Twitter para tweets o etiquetas ( SearchTwitter)


 Enviando un Tweet ( Tweet)
 Enviando un Tweet con una imagen ( TweetWithImage)
 Dirigir un mensaje a un usuario específico ( DirectMessage)
 Recibiendo los mensajes más recientes dirigidos al usuario que inició sesión ( RequestDirectMessages)
 Siguiendo a un usuario específico ( Follow)
 Dejar de seguir a un usuario específico ( StopFollowing)
 Obtención de una lista de usuarios que siguen al usuario que ha iniciado sesión ( RequestFollowers)
 Obtención de los mensajes más recientes de los usuarios seguidos por el usuario que inició sesión ( RequestFriendTimeline)
 Obtención de las menciones más recientes del usuario conectado ( RequestMentions)

Debe obtener una Clave del consumidor y un Secreto del consumidor para la autorización de Twitter específica para su aplicación en
http://twitter.com/oauth_clients/new

Propiedades
ConsumerKey
La clave del consumidor que se utilizará al autorizar con Twitter a través de OAuth.
ConsumerSecret
El secreto del consumidor que se utilizará al autorizar con Twitter a través de OAuth
DirectMessages
Esta propiedad contiene una lista de los mensajes más recientes que mencionan al usuario que ha iniciado sesión. Inicialmente, la lista está
vacía. Para configurarlo, el programa debe:
1. Llama al Authorizemétodo.
2. Espera el Authorizedevento.
3. Llama al RequestDirectMessagesmétodo.
4. Espera el DirectMessagesReceivedevento.

El valor de esta propiedad se establecerá en la lista de mensajes directos recuperados (y mantendrá ese valor hasta cualquier llamada
posterior RequestDirectMessages).

Followers

Esta propiedad contiene una lista de los seguidores del usuario que ha iniciado sesión. Inicialmente, la lista está vacía. Para configurarlo, el
programa debe:

1. Llama al Authorizemétodo.
2. Espera el IsAuthorizedevento.
3. Llama al RequestFollowersmétodo.
4. Espera el FollowersReceivedevento.

El valor de esta propiedad se establecerá en la lista de seguidores (y mantendrá su valor hasta cualquier llamada posterior RequestFollowers).

FriendTimeline

Esta propiedad contiene los 20 mensajes más recientes de usuarios seguidos. Inicialmente, la lista está vacía. Para configurarlo, el programa debe:

1. Llama al Authorizemétodo.
2. Espera el IsAuthorizedevento.
3. Especifique los usuarios a seguir con una o más llamadas al Followmétodo.
4. Llama al RequestFriendTimelinemétodo.
5. Espera el FriendTimelineReceivedevento.

El valor de esta propiedad se establecerá en la lista de mensajes (y mantendrá su valor hasta cualquier llamada posterior a) RequestFriendTimeline.

Mentions

Esta propiedad contiene una lista de menciones del usuario que ha iniciado sesión. Inicialmente, la lista está vacía. Para configurarlo, el programa
debe:
1. Llama al Authorizemétodo.
2. Espera el IsAuthorizedevento.
3. Llama al RequestMentionsmétodo.
4. Espera el MentionsReceivedevento.

El valor de esta propiedad se establecerá en la lista de menciones (y mantendrá su valor hasta que se realice cualquier llamada
posterior RequestMentions).

SearchResults

Esta propiedad, que inicialmente está vacía, se establece en una lista de resultados de búsqueda después del programa:

1. Llama al SearchTwittermétodo.
2. Espera el SearchSuccessfulevento.

El valor de la propiedad será el mismo que el parámetro para SearchSuccessful. Tenga en cuenta que no es necesario llamar al Authorizemétodo
antes de llamar SearchTwitter.

Username

El nombre de usuario del usuario autorizado. Vaciar si no hay un usuario autorizado.

Eventos
DirectMessagesReceived(list messages)
Este evento se genera cuando RequestDirectMessagesse han recuperado los mensajes recientes solicitados a través de . Una lista de los mensajes se
puede encontrar en el messagesparámetro o la Messagespropiedad.

FollowersReceived(list followers2)
Este evento se produce cuando RequestFollowersse han recuperado todos los seguidores del usuario con el que se inició sesión solicitado . Una lista
de los seguidores se puede encontrar en el followersparámetro o la Followerspropiedad.

FriendTimelineReceived(list timeline)
Este evento se genera cuando los mensajes solicitados RequestFriendTimelinese han recuperado. El timelineparámetro y la Timelinepropiedad
contendrán una lista de listas, donde cada sub-lista contiene una actualización de estado del formulario (mensaje de nombre de usuario)

IsAuthorized()
Este evento se genera después de que el programa se llame Authorizesi la autorización fue exitosa. También se llama después de una llamada
a CheckAuthorizedsi ya tenemos un token de acceso válido. Después de que se haya producido este evento, se puede llamar a cualquier otro método
para este componente.

MentionsReceived(list mentions)
Este evento se produce cuando RequestMentionsse han recuperado las menciones del usuario conectado solicitado a través de . Una lista de las
menciones se puede encontrar en el mentionsparámetro o la Mentionspropiedad.

SearchSuccessful(list searchResults)
Este evento se genera cuando SearchSuccessfulse han recuperado los resultados de la búsqueda solicitada . Una lista de los resultados se puede
encontrar en el resultsparámetro o la Resultspropiedad.

Métodos
Authorize()
Redirige al usuario para que inicie sesión en Twitter a través del navegador web utilizando el protocolo OAuth si aún no tenemos autorización.
CheckAuthorized()
Comprueba si ya tenemos acceso y, de ser así, hace que se llame al controlador de eventos IsAuthorized.
DeAuthorize()
Elimina la autorización de Twitter de esta instancia de aplicación en ejecución
DirectMessage(text user, text message)
Esto envía un mensaje directo (privado) al usuario especificado. El mensaje se recortará si supera los 160 caracteres.
Requisitos : solo se debe llamar después de IsAuthorizedque se haya generado el evento, lo que indica que el usuario ha iniciado sesión
correctamente en Twitter.
Follow(text user)
Comienza siguiendo a un usuario.
RequestDirectMessages()
Solicita los 20 mensajes directos más recientes enviados al usuario que inició sesión. Cuando se hayan recuperado los mensajes, el sistema
levantará el DirectMessagesReceivedevento y establecerá la DirectMessagespropiedad en la lista de mensajes.

Requisitos : solo se debe llamar después de IsAuthorizedque se haya generado el evento, lo que indica que el usuario ha iniciado sesión
correctamente en Twitter.
RequestFollowers()
Obtiene quién te está siguiendo.
RequestFriendTimeline()
Obtiene los 20 mensajes más recientes en la línea de tiempo del usuario.
RequestMentions()
Solicita las 20 menciones más recientes del usuario que ha iniciado sesión. Cuando se hayan recuperado las menciones, el sistema levantará
el MentionsReceivedevento y establecerá la Mentionspropiedad en la lista de menciones.

Requisitos : solo se debe llamar después de IsAuthorizedque se haya generado el evento, lo que indica que el usuario ha iniciado sesión
correctamente en Twitter.
SearchTwitter(text query)
Esto busca en Twitter para la consulta de cadena dada.
Requisitos : solo se debe llamar después de IsAuthorizedque se haya generado el evento, lo que indica que el usuario ha iniciado sesión
correctamente en Twitter.
StopFollowing(text user)
Deja de seguir a un usuario.
Tweet(text status)
Esto envía un tweet como usuario registrado con el texto especificado, que se recortará si supera los 160 caracteres.
Requisitos : solo se debe llamar después de IsAuthorizedque se haya generado el evento, lo que indica que el usuario ha iniciado sesión
correctamente en Twitter.
TweetWithImage(text status, text imagePath)
Esto envía un tweet como el usuario que inició sesión con el texto especificado y una ruta a la imagen que se cargará, que se recortará si supera los
160 caracteres. Si una imagen no se encuentra o no es válida, la actualización no se enviará.
Requisitos : solo se debe llamar después de IsAuthorizedque se haya generado el evento, lo que indica que el usuario ha iniciado sesión
correctamente en Twitter.

Almacenamiento - App Inventor para Android

Tabla de contenido
 Expediente
 FusionTablesControl
 TinyDB
 TinyWebDB

Expediente

Componente no visible para almacenar y recuperar archivos. Use este componente para escribir o leer archivos en su dispositivo. El comportamiento
predeterminado es escribir archivos en el directorio de datos privados asociado con su aplicación. El Acompañante escribe archivos en / sdcard / AppInventor
/ data para una fácil depuración. Si la ruta del archivo comienza con una barra (/), el archivo se creará en relación con / sdcard. Por ejemplo, escribir un
archivo en /myFile.txt escribirá el archivo en /sdcard/myFile.txt.

Propiedades
ninguna

Eventos
AfterFileSaved(text fileName)
Evento que indica que el contenido del archivo ha sido escrito.
GotText(text text)
Evento que indica que se han leído los contenidos del archivo.
Métodos
AppendToFile(text text, text fileName)
Agrega texto al final de un archivo. Crea el archivo si aún no existe. Consulte el texto de ayuda en SaveFile para obtener información sobre dónde se
escriben los archivos.
Delete(text fileName)
Borra un archivo del almacenamiento. Prefije el nombre del archivo con / para eliminar un archivo específico en la tarjeta SD (por ejemplo, /myFile.txt
eliminará el archivo /sdcard/myFile.txt). Si el nombre de archivo no comienza con una /, se eliminará el archivo ubicado en el almacenamiento privado
del programa. Iniciar el archivo con // es un error porque los archivos de activos no se pueden eliminar.
ReadFrom(text fileName)
Lee el texto de un archivo en el almacenamiento. Prefije el nombre del archivo con / para leer un archivo específico en la tarjeta SD (por ejemplo,
/myFile.txt leerá el archivo /sdcard/myFile.txt). Para leer los activos empaquetados con una aplicación (también funciona para el Acompañante), inicie
el nombre de archivo con // (dos barras). Si un nombre de archivo no comienza con una barra inclinada, se leerá desde el almacenamiento privado
de la aplicación (para aplicaciones empaquetadas) y desde / sdcard / AppInventor / data para el Acompañante.
SaveFile(text text, text fileName)
Guarda texto en un archivo. Si el nombre de archivo comienza con una barra (/), el archivo se escribe en la sdcard (por ejemplo, al escribir en
/myFile.txt se escribirá el archivo en /sdcard/myFile.txt). Si el nombre de archivo no comienza con una barra inclinada, se escribirá en el directorio de
datos privados del programa, donde no podrá acceder a otros programas en el teléfono. Hay una excepción especial para el AI Companion donde
estos archivos se escriben en / sdcard / AppInventor / data para facilitar la depuración. Tenga en cuenta que este bloque sobrescribirá un archivo si
ya existe. Si desea agregar contenido a un archivo, use el bloque adjunto.

FusionTablesControl

Un componente no visible que se comunica con Google Fusion Tables. Fusion Tables le permite almacenar, compartir, consultar y visualizar tablas de
datos; este componente le permite consultar, crear y modificar estas tablas.
Este componente utiliza la Fusion Tables API V2.0 .

Las aplicaciones que usan Fusion Tables deben autenticarse con los servidores de Google. Hay dos maneras en que esto se puede hacer. La primera forma
solo usa una clave API que usted (el desarrollador) obtiene. Con este enfoque, los usuarios finales también deben iniciar sesión para acceder a una tabla de
Fusion.
El segundo enfoque es usar la autenticación del servicio. Con este enfoque, creará credenciales y una "Dirección de correo electrónico de cuenta de servicio"
especial que permite a los usuarios finales editar sus tablas de Fusion sin iniciar sesión; Su cuenta de servicio autentica todos los accesos.

Usando el componente FusiontablesControl

Creación de tablas de fusión

Probablemente querrá crear sus propias Tablas de Fusion para experimentar mientras desarrolla sus aplicaciones. Esto es tan fácil como crear un
documento de Google, si está familiarizado con ese proceso. Aquí están los pasos:

1. En la web, inicie sesión en su cuenta de Gmail o en cualquier otro servicio de Google (por ejemplo, Drive, YouTube). Vaya a Google Drive.
2. Haga clic en el botón Nuevo y navegue a Más . Si no ve una opción de Google Fusion Tables, seleccione Conectar más aplicaciones y desplácese
por la página de servicios de Google para encontrar el servicio de Fusion Tables y conectarlo a su Google Drive.
3. Es posible que desee ver algunos de los ejemplos y trabajar a través de un tutorial (por ejemplo, Pizza Party Tutorial ) para aprender lo básico.
4. Haga clic en el botón Ver mis tablas (arriba a la derecha de la página). Esto te llevará a tu propia página.
5. Debería ver una lista de sus propias tablas o tablas que se han compartido con usted (posiblemente ninguna).
6. Use el botón Crear para crear una nueva tabla. Dale algunos nombres de columna y guárdalo.
7. Haga clic en el botón Compartir (arriba a la derecha) para modificar los permisos de la tabla.

Creando una aplicación de Fusiontables


Cuando arrastre el componente FusiontablesControl al Diseñador, no olvide establecer su propiedad ApiKey , que inicialmente está en blanco. Debe copiar
esto desde su Consola de desarrolladores de Google y pegarlo en el campo de propiedad.
Para obtener una clave API , siga estas instrucciones.

1. Vaya a su Consola de desarrolladores de Google e inicie sesión si es necesario.


2. En API y autenticación, seleccione el elemento de API en el menú de la izquierda.
3. Elija la API de Fusion Tables de la lista provista y enciéndala.
4. En la barra izquierda, seleccione el elemento Credenciales .
5. En Acceso público a la API, haga clic en Crear nueva clave , elija la clave de Android y haga clic en Crear para generar una clave de la API.

Su (s) clave (s) API aparecerán en el panel junto a "Acceso público a API". Debe proporcionar esa clave como el valor de la propiedad ApiKey en su
aplicación Fusion Tables.
Una vez que tenga una clave API, establezca el valor de la propiedad Query en una consulta válida de Fusiontables SQL y llame a SendQuery para ejecutar
la consulta. App Inventor enviará la consulta al servidor de Fusion Tables y el bloque GotResult se activará cuando el servidor devuelva un resultado. Los
resultados de la consulta se devolverán en formato CSV y se pueden convertir a formato de lista utilizando los bloques "listar desde la tabla csv" o "listar
desde la fila csv".
Tenga en cuenta que no necesita preocuparse por la codificación UTF de la consulta. Pero debe asegurarse de que la consulta siga la sintaxis que se
describe en el manual de referencia , lo que significa que importa el uso de mayúsculas para los nombres de las columnas, y que deben usarse comillas
simples alrededor de los nombres de las columnas si hay espacios en ellas.
Para configurar la autenticación del servicio para su tabla de Fusion, siga estos pasos adicionales:

1. En la Consola de API de Google, bajo API y autenticación, seleccione el elemento de API en el menú de la izquierda.
2. Haga clic en el botón Crear nueva ID de cliente . Seleccione la opción Cuenta de servicio y haga clic en Crear ID de cliente .
3. Un archivo llamado KeyFile (que termina en la extensión .p12) se descargará automáticamente en su computadora. Guárdalo en un lugar que
recordarás. Una vez que se complete la creación, obtendrá una tabla con la información de su cuenta de servicio.
4. En la ventana del diseñador de App Inventor, seleccione el FusionTablesControl. En el panel de propiedades, agregue ServiceAccountEmail (de la
tabla en la consola), cargue el KeyFile y marque la casilla UseServiceAuthentication .
5. Comparta la tabla de Fusion con su ServiceAccountEmail y concédale permisos de edición, de la misma manera que compartiría cualquier otro
Google Doc con una dirección de correo electrónico.

Propiedades
ApiKey
Su clave API de Google. Consulte más arriba para obtener detalles sobre cómo obtener una clave API.
KeyFile
Especifica la ruta del archivo de clave privada. Este archivo de clave se usa para obtener acceso a la API de FusionTables a través de la
autenticación del servicio.
LoadingDialogMessage
El mensaje mostrado en el diálogo de carga.
Query
La consulta para enviar al Fusion Tables API.
Para consultar los formatos y ejemplos de consultas legales, consulte el manual de referencia de Fusion Tables API v2.0 .
Tenga en cuenta que no necesita preocuparse por la codificación UTF de la consulta. Debe asegurarse de que la consulta sigue la sintaxis descrita
en el manual de referencia. Tenga en cuenta que el uso de mayúsculas para los nombres de las columnas es necesario y que las comillas simples se
deben usar alrededor de los nombres de las columnas si hay espacios en ellas.
ServiceAccountEmail
La dirección de correo electrónico de la cuenta de servicio utilizada para la autenticación del servicio.
ShowLoadingDialog
Ya sea para mostrar el diálogo de carga o no
UseServiceAuthentication
Indica si se debe utilizar una cuenta de servicio para la autenticación.

Eventos
GotResult(text result)
Indica que la consulta de Fusion Tables ha terminado de procesarse y se ha devuelto con un resultado. El resultado de la consulta generalmente se
devolverá en formato CSV, y se puede convertir a formato de lista utilizando los bloques "listar desde la tabla csv" o "listar desde la fila csv".

Métodos
DoQuery()
OBSOLETO. Este bloque está en desuso a partir de finales de 2012. Use SendQuery en su lugar.
ForgetLogin()
Olvídate de las credenciales de inicio de sesión del usuario final. No tiene efecto en la autenticación del servicio.
GetRows(text tableId, text columns)
Obtiene todas las filas de una tabla de fusión especificada. El campo tableId (obligatorio) es el id de la tabla de Fusion. El campo de columnas es una
lista separada por comas de las columnas a recuperar.
GetRowsWithConditions(text tableId, text columns, text conditions)
Obtiene todas las filas de una tabla de Fusion que cumplen ciertas condiciones. El campo tableId (obligatorio) es el id de la tabla de Fusion. El campo
de columnas es una lista separada por comas de las columnas a recuperar. El campo de condiciones especifica qué filas recuperar de la tabla (por
ejemplo, las filas en las que un valor de columna particular no es nulo).
InsertRow(text tableId, text columns, text values)
Inserta una fila en la tabla de fusión especificada. El campo tableId es el id de la tabla de fusión. El campo de columnas es una lista separada por
comas de las columnas en las que se insertan los valores. El campo de valores especifica qué valores se insertarán en cada columna.
SendQuery()
Envía la consulta al servidor de Fusion Tables.

TinyDB

TinyDB es un componente no visible que almacena datos para una aplicación.


Las aplicaciones creadas con App Inventor se inicializan cada vez que se ejecutan. Esto significa que si una aplicación establece el valor de una variable y el
usuario abandona la aplicación, el valor de esa variable no se recordará la próxima vez que se ejecute la aplicación. En contraste, TinyDB es un almacén de
datos persistentes para la aplicación. Los datos almacenados en un TinyDB estarán disponibles cada vez que se ejecute la aplicación. Un ejemplo podría ser
un juego que guarda la puntuación más alta y la recupera cada vez que se juega.
Los elementos de datos consisten en etiquetas y valores . Para almacenar un elemento de datos, especifique la etiqueta con la que debe almacenarse. La
etiqueta debe ser un bloque de texto, dando un nombre a los datos. Posteriormente, puede recuperar los datos que se almacenaron bajo una etiqueta
determinada.
No puede usar el TinyDB para pasar datos entre dos aplicaciones diferentes en el teléfono, aunque puede usar el TinyDB para compartir datos entre las
diferentes pantallas de una aplicación multipantalla.

Cuando estés desarrollando aplicaciones usando AI Companion, todas las aplicaciones que usen ese Companion compartirán el mismo TinyDB. Ese
intercambio desaparecerá una vez que las aplicaciones estén empaquetadas e instaladas en el teléfono. Durante el desarrollo, debe tener cuidado de borrar
los datos de la aplicación Companion cada vez que comience a trabajar en una nueva aplicación.

Propiedades
Namespace
Espacio de nombres para almacenar datos. Todos los componentes de TinyDB en la misma aplicación con la misma propiedad de espacio de
nombres acceden a los mismos datos.
Cada espacio de nombres representa un único almacén de datos compartido por toda la aplicación. Si tiene varios componentes de TinyDB con el
mismo espacio de nombres dentro de una aplicación, ellos usan el mismo almacén de datos, incluso si están en pantallas diferentes. Si solo necesita
un almacén de datos para su aplicación, no es necesario definir un espacio de nombres.
Eventos
ninguna

Métodos
ClearAll()
Borrar todo el almacén de datos en el TinyDB.
ClearTag(text tag)
Borrar la entrada con la etiqueta dada.
any GetTags()
Devuelve una lista de todas las etiquetas en TinyDB.
any GetValue(text tag, any valueIfTagNotThere)
Recupere el valor almacenado bajo la etiqueta dada. Si no hay tal etiqueta, devuelva valueIfTagNotThere.
StoreValue(text tag, any valueToStore)
Almacene el valor debajo de la etiqueta dada. El almacenamiento persiste en el teléfono cuando se reinicia la aplicación.

TinyWebDB

Componente no visible que se comunica con un servicio web para almacenar y recuperar información.
Consulte Creación de un servicio TinyWebDB personalizado.

Propiedades
ServiceURL
La URL a la base de datos con la que el componente debe comunicarse.
Eventos
GotValue(text tagFromWebDB, any valueFromWebDB)
Indica que una solicitud del servidor GetValue ha tenido éxito.
ValueStored()
Evento que indica que una solicitud del servidor StoreValue ha tenido éxito.
WebServiceError(text message)
Indica que la comunicación con el servicio web señala un error.

Métodos
GetValue(text tag)
Envía una solicitud al servicio web para obtener el valor almacenado bajo la etiqueta dada. El servicio web debe decidir qué devolver si no hay
ningún valor almacenado bajo la etiqueta. Este componente acepta lo que sea devuelto.
StoreValue(text tag, any valueToStore)
Envía una solicitud al servicio web para almacenar el valor dado bajo la etiqueta dada.

Componentes de conectividad - App Inventor para Android

Tabla de contenido
 ActivityStarter
 BluetoothClient
 BluetoothServer
 Web

ActivityStarter
Un componente que puede iniciar una actividad utilizando el StartActivitymétodo.
Las actividades que se pueden lanzar incluyen:

 A partir de otra aplicación Inventor para Android. Para hacerlo, primero averigüe la clase de la otra aplicación descargando el código fuente y
utilizando un explorador de archivos o la utilidad de descompresión para encontrar un archivo llamado "youngandroidproject / project.properties". La
primera línea del archivo comenzará con "main =" y será seguida por el nombre de la clase; por
ejemplo main=com.gmail.Bitdiddle.Ben.HelloPurr.Screen1,. (Los primeros componentes indican que fue creado por Ben.Bitdiddle@gmail.com). Para
hacer su ActivityStarterinicio de esta aplicación, configure las siguientes propiedades:
o ActivityPackageal nombre de la clase, eliminando el último componente (por ejemplo, com.gmail.Bitdiddle.Ben.HelloPurr)
o ActivityClassa todo el nombre de la clase (por ejemplo, com.gmail.Bitdiddle.Ben.HelloPurr.Screen1)
 Iniciar la aplicación de la cámara configurando las siguientes propiedades:
o Action: android.intent.action.MAIN
o ActivityPackage: com.android.camera
o ActivityClass: com.android.camera.Camera
 Realizando búsqueda web. Asumiendo que el término que desea buscar es "vampiro" (siéntase libre de sustituir su propia elección), establezca las
propiedades en:
o Action: android.intent.action.WEB_SEARCH
o ExtraKey: query
o ExtraValue: vampire
o ActivityPackage: com.google.android.providers.enhancedgooglesearch
o ActivityClass: com.google.android.providers.enhancedgooglesearch.Launcher
 Abrir un navegador a una página web específica. Suponiendo que la página a la que desea ir es "www.facebook.com" (no dude en sustituir su propia
elección), establezca las propiedades en:
o Action: android.intent.action.VIEW
o DataUri: http://www.facebook.com

Propiedades
Action

ActivityClass

ActivityPackage

DataType

DataUri
Extras
Acepta una lista de pares que se utilizan como pares clave / valor en el campo "Extra" de la actividad
ExtraKey(Obsolete)
ExtraValue(Obsolete)
Result

ResultName
ResultType

ResultUri

Eventos
AfterActivity(text result)
Evento generado después de que este ActivityStarter regresa.
ActivityCanceled()
Evento generado si este ActivityStarter se devuelve porque la actividad se canceló.

Métodos
text ResolveActivity()
Devuelve el nombre de la actividad que corresponde a este ActivityStarter, o una cadena vacía si no se puede encontrar la actividad correspondiente.
StartActivity()
Inicia la actividad correspondiente a este ActivityStarter.

BluetoothClient

Componente de cliente Bluetooth


Propiedades
AddressesAndNames

Las direcciones y nombres de los dispositivos Bluetooth emparejados


Available
Si Bluetooth está disponible en el dispositivo
CharacterEncoding
DelimiterByte
Enabled

Si Bluetooth está habilitado


HighByteFirst
IsConnected

Secure
Ya sea para invocar SSP (Simple Secure Pairing), que es compatible con dispositivos con Bluetooth v2.1 o superior. Cuando trabaje con dispositivos
Bluetooth integrados, es posible que esta propiedad deba configurarse en Falso. Para Android 2.0-2.2, esta configuración de propiedad se ignorará.

Eventos
ninguna

Métodos
number BytesAvailableToReceive()
Devuelve una estimación del número de bytes que se pueden recibir sin bloquear
boolean Connect(text address)
Conéctese al dispositivo Bluetooth con la dirección especificada y el perfil de puerto serie (SPP). Devuelve true si la conexión fue exitosa.
boolean ConnectWithUUID(text address, text uuid)
Conéctese al dispositivo Bluetooth con la dirección y el UUID especificados. Devuelve true si la conexión fue exitosa.
Disconnect()
Desconecte del dispositivo Bluetooth conectado.
boolean IsDevicePaired(text address)
Comprueba si el dispositivo Bluetooth con la dirección especificada está emparejado.
number ReceiveSigned1ByteNumber()
Reciba un número de 1 byte firmado del dispositivo Bluetooth conectado.
number ReceiveSigned2ByteNumber()
Reciba un número de 2 bytes firmado del dispositivo Bluetooth conectado.
number ReceiveSigned4ByteNumber()
Reciba un número de 4 bytes firmado del dispositivo Bluetooth conectado.
list ReceiveSignedBytes(number numberOfBytes)
Reciba múltiples valores de bytes firmados desde el dispositivo Bluetooth conectado. Si numberOfBytes es menor que 0, lea hasta que se reciba un
valor de byte delimitador.
text ReceiveText(number numberOfBytes)
Reciba mensajes de texto del dispositivo Bluetooth conectado. Si numberOfBytes es menor que 0, lea hasta que se reciba un valor de byte
delimitador.
number ReceiveUnsigned1ByteNumber()
Reciba un número de 1 byte sin firmar del dispositivo Bluetooth conectado.
number ReceiveUnsigned2ByteNumber()
Reciba un número de 2 bytes sin firmar del dispositivo Bluetooth conectado.
number ReceiveUnsigned4ByteNumber()
Reciba un número de 4 bytes sin firmar del dispositivo Bluetooth conectado.
list ReceiveUnsignedBytes(number numberOfBytes)
Reciba múltiples valores de bytes sin firmar del dispositivo Bluetooth conectado. Si numberOfBytes es menor que 0, lea hasta que se reciba un valor
de byte delimitador.
Send1ByteNumber(text number)
Envíe un número de 1 byte al dispositivo Bluetooth conectado.
Send2ByteNumber(text number)
Envíe un número de 2 bytes al dispositivo Bluetooth conectado.
Send4ByteNumber(text number)
Envíe un número de 4 bytes al dispositivo Bluetooth conectado.
SendBytes(list list)
Envíe una lista de valores de bytes al dispositivo Bluetooth conectado.
SendText(text text)
Enviar texto al dispositivo Bluetooth conectado.

BluetoothServer

Componente del servidor bluetooth

Propiedades
Available: boolean
Indica si Bluetooth está disponible en el dispositivo Android.
CharacterEncoding: text
La codificación de caracteres que se utilizará al enviar y recibir texto.
DelimiterByte: number
El byte delimitador que se utiliza cuando se pasa un número negativo para el parámetro numberOfBytes al llamar ReceiveText, ReceiveSignedBytes
o ReceiveUnsignedBytes.
Enabled: boolean
Indica si Bluetooth está habilitado.
HighByteFirst: boolean
Si los números de 2 y 4 bytes deben enviarse y recibirse con el byte alto (o el más significativo) primero. Verifique la documentación del dispositivo
con el que se comunicará su aplicación para la configuración adecuada. Esto también se conoce como big-endian.
IsAccepting: boolean
Indica si este componente del servidor Bluetooth está aceptando una conexión entrante.
IsConnected: boolean
Indica si se ha realizado una conexión Bluetooth.

Eventos
ConnectionAccepted()
Indica que una conexión Bluetooth ha sido aceptada.

Métodos
AcceptConnection(text serviceName)
Acepte una conexión entrante con el perfil de puerto serie (SPP).
AcceptConnectionWithUUID(text serviceName, text uuid)
Acepte una conexión entrante con un UUID específico.
number BytesAvailableToReceive()
Devuelve una estimación del número de bytes que se pueden recibir sin bloquear
Disconnect()
Desconecte del dispositivo Bluetooth conectado.
number ReceiveSigned1ByteNumber()
Reciba un número de 1 byte firmado del dispositivo Bluetooth conectado.
number ReceiveSigned2ByteNumber()
Reciba un número de 2 bytes firmado del dispositivo Bluetooth conectado.
number ReceiveSigned4ByteNumber()
Reciba un número de 4 bytes firmado del dispositivo Bluetooth conectado.
list ReceiveSignedBytes(number numberOfBytes)
Reciba múltiples valores de bytes firmados desde el dispositivo Bluetooth conectado. Si numberOfBytes es menor que 0, lea hasta que se reciba un
valor de byte delimitador.
text ReceiveText(number numberOfBytes)
Reciba mensajes de texto del dispositivo Bluetooth conectado. Si numberOfBytes es menor que 0, lea hasta que se reciba un valor de byte
delimitador.
number ReceiveUnsigned1ByteNumber()
Reciba un número de 1 byte sin firmar del dispositivo Bluetooth conectado.
number ReceiveUnsigned2ByteNumber()
Reciba un número de 2 bytes sin firmar del dispositivo Bluetooth conectado.
number ReceiveUnsigned4ByteNumber()
Reciba un número de 4 bytes sin firmar del dispositivo Bluetooth conectado.
list ReceiveUnsignedBytes(number numberOfBytes)
Reciba múltiples valores de bytes sin firmar del dispositivo Bluetooth conectado. Si numberOfBytes es menor que 0, lea hasta que se reciba un valor
de byte delimitador.
Send1ByteNumber(text number)
Envíe un número de 1 byte al dispositivo Bluetooth conectado.
Send2ByteNumber(text number)
Envíe un número de 2 bytes al dispositivo Bluetooth conectado.
Send4ByteNumber(text number)
Envíe un número de 4 bytes al dispositivo Bluetooth conectado.
SendBytes(list list)
Envíe una lista de valores de bytes al dispositivo Bluetooth conectado.
SendText(text text)
Enviar texto al dispositivo Bluetooth conectado.
StopAccepting()
Deja de aceptar una conexión entrante.
Web

Componente no visible que proporciona funciones para solicitudes HTTP GET, POST, PUT y DELETE.

Propiedades
AllowCookies
Si las cookies de una respuesta deben guardarse y usarse en solicitudes posteriores. Las cookies solo son compatibles con la versión de Android 2.3
o superior.
RequestHeaders
Los encabezados de solicitud, como una lista de sublistas de dos elementos. El primer elemento de cada lista secundaria representa el nombre del
campo del encabezado de la solicitud. El segundo elemento de cada lista secundaria representa los valores del campo del encabezado de la
solicitud, ya sea un solo valor o una lista que contiene varios valores.
ResponseFileName
El nombre del archivo donde se debe guardar la respuesta. Si SaveResponse es verdadero y ResponseFileName está vacío, se generará un nuevo
nombre de archivo.
SaveResponse
Si la respuesta debe ser guardada en un archivo.
Url
La URL para la solicitud web.

Eventos
GotFile(text url, number responseCode, text responseType, text fileName)
Evento que indica que una solicitud ha finalizado.
GotText(text url, number responseCode, text responseType, text responseContent)
Evento que indica que una solicitud ha finalizado.
Métodos
text BuildRequestData(list list)
Convierte una lista de sublistas de dos elementos, que representan pares de nombre y valor, en una cadena formateada como tipo de medio de
aplicación / x-www-form-urlencoded, adecuada para pasar a PostText.
ClearCookies()
Borra todas las cookies de este componente web.
Delete()
Realiza una solicitud HTTP DELETE utilizando la propiedad Url y recupera la respuesta.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
Get()
Realiza una solicitud HTTP GET utilizando la propiedad Url y recupera la respuesta.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
text HtmlTextDecode(text htmlText)
Decodifica el valor de texto HTML dado. Entidades de caracteres HTML como & amp ;, & lt ;, & gt ;, & apos ;, y & quot; se cambian a &, <,>, 'y ".
Entidades como & # xhhhh, y & # nnnn se cambian a los caracteres apropiados.
any JsonTextDecode(text jsonText)
Decodifica el valor codificado JSON dado para producir un valor correspondiente de AppInventor. Una lista JSON [x, y, z] se decodifica a una lista
(xyz), Un objeto JSON con nombre A y valor B, (denotado como A: B encerrado entre llaves) se decodifica a una lista ((AB)), que es, una lista que
contiene la lista de dos elementos (AB).
PostFile(text path)
Realiza una solicitud HTTP POST utilizando la propiedad Url y los datos del archivo especificado.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
PostText(text text)
Realiza una solicitud HTTP POST utilizando la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando la codificación UTF-8.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
responseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
PostTextWithEncoding(text text, text encoding)
Realiza una solicitud HTTP POST utilizando la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando la codificación dada.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
PutFile(text path)
Realiza una solicitud HTTP PUT utilizando la propiedad Url y los datos del archivo especificado.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
PutText(text text)
Realiza una solicitud HTTP PUT utilizando la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando la codificación UTF-8.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
responseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
PutTextWithEncoding(text text, text encoding)
Realiza una solicitud HTTP PUT utilizando la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando la codificación dada.
Si la propiedad SaveResponse es verdadera, la respuesta se guardará en un archivo y se activará el evento GotFile. La propiedad
ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, se activará el evento GotText.
text UriEncode(text text)
Codifica el valor de texto dado para que se pueda utilizar en una URL.
text UriDecode(text text)
Decodifica el valor del texto codificado para que los valores ya no estén codificados en URL.
any XMLTextDecode(text XmlText)
Decodifica la cadena XML dada para producir una estructura de lista. Consulte la documentación de App Inventor en "Otros temas, notas y detalles"
para obtener información.

LEGO MINDSTORMS - App Inventor para Android

Estos componentes proporcionan el control de los robots LEGO® MINDSTORMS® NXT utilizando Bluetooth.

LEGO y MINDSTORMS son marcas registradas de LEGO Group.


IMPORTANTE : Todos estos componentes tienen una propiedad BluetoothClient que debe configurarse en el diseñador de App Inventor (en el
navegador). La propiedad no se puede establecer en el editor de bloques. La propiedad dice qué componente de BluetoothClient Utilizar para la
comunicación con el robot. Deberá agregar explícitamente un componente BluetoothClient a su proyecto. Si tiene un robot, debe tener un componente
BluetoothClient. Si tiene la suerte de tener dos robots y desea controlarlos simultáneamente desde una aplicación, necesitará dos componentes
BluetoothClient en su proyecto. El componente BluetoothClient está disponible en la sección "No está listo para el horario de máxima audiencia" de la paleta.

Aquí hay una lista de los pasos iniciales que deberá realizar para usar uno o más de los componentes de NXT:

1. Vaya a la paleta y haga clic en "No está listo para el horario de máxima audiencia".
2. Arrastre un componente BluetoothClient y suéltelo en el Visor .
3. El componente se llamará automáticamente BluetoothClient1 .
4. En la paleta , haga clic en "LEGO MINDSTORMS".
5. Arrastre uno de los componentes, por ejemplo , NxtDirectCommands , y suéltelo en el Visor .
6. En el cuadro de Propiedades , haga clic en el área después de BluetoothClient (actualmente "Ninguno ...").
7. Aparece un cuadro con una lista de todos los componentes de BluetoothClient en su proyecto.
8. Haga clic en BluetoothClient1 y haga clic en Aceptar .
9. Si lo desea, agregue otro componente, por ejemplo NxtColorSensor , y repita los pasos 6-8 para configurar su propiedad BluetoothClient .

Tabla de contenido
 NxtDirectCommands
 NxtColorSensor
 NxtLightSensor
 NxtSoundSensor
 NxtTouchSensor
 NxtUltrasonicSensor
 NxtDrive
 Motores de ev3
 Ev3ColorSensor
 Ev3GyroSensor
 Ev3TouchSensor
 Ev3UltrasonicSensor
 Ev3Sound
 Ev3UI
 Ev3Commands

NxtDirectCommands

Un componente que proporciona una interfaz de bajo nivel para un robot LEGO MINDSTORMS NXT, con funciones para enviar comandos directos de NXT

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

Métodos
DeleteFile (nombre de archivo de texto)

Eliminar un archivo en el robot.


DownloadFile (origen del texto, destino del texto)
Descarga un archivo al robot.
GetBatteryLevel ()
Consigue el nivel de batería para el robot. Devuelve el voltaje en milivoltios.
GetBrickName ()
Consigue el nombre de ladrillo del robot.
GetCurrentProgramName ()
Obtenga el nombre del programa actualmente en ejecución en el robot.
GetFirmwareVersion ()
Obtenga los números de versión de firmware y protocolo para el robot como una lista donde el primer elemento es el número de versión de firmware
y el segundo elemento es el número de versión de protocolo.
GetInputValues (texto sensorPortLetter)
Lee los valores de un sensor de entrada en el robot. Asume que el tipo de sensor se ha configurado a través de SetInputMode.
GetOutputState (texto motorPortLetter)
Lee el estado de salida de un motor en el robot.
KeepAlive ()
Mantener viva. Devuelve el límite de tiempo de suspensión actual en milisegundos.
ListFiles (texto comodín)
Devuelve una lista que contiene los nombres de los archivos coincidentes encontrados en el robot.
LsGetStatus (texto sensorPortLetter)
Devuelve el recuento de bytes disponibles para leer.
LsRead (texto sensorPortLetter)
Lee datos de baja velocidad sin firmar de un sensor de entrada en el robot. Asume que el tipo de sensor se ha configurado a través de
SetInputMode.
LsWrite (texto sensorPortLetter, lista de lista, número rxDataLength)
Escribe datos de baja velocidad en un sensor de entrada en el robot. Asume que el tipo de sensor se ha configurado a través de SetInputMode.
MessageRead (número de buzón)
Lea un mensaje de un buzón (1-10) en el robot.
MessageWrite (número buzón, mensaje de texto)
Escriba un mensaje en un buzón (1-10) en el robot.
PlaySoundFile (nombre de archivo de texto)
Reproduce un archivo de sonido en el robot.
PlayTone (número de frecuencia Hz, número durationMs)
Haz que el robot toque un tono.
ResetInputScaledValue (texto sensorPortLetter)
Restablecer el valor escalado de un sensor de entrada en el robot.
ResetMotorPosition (texto motorPortLetter, pariente booleano)
Restablecer la posición del motor.
SetBrickName (nombre del texto)
Establecer el nombre de ladrillo del robot.
SetInputMode (texto sensorPortLetter, número sensorType, número sensorMode)
Configurar un sensor de entrada en el robot.
SetOutputState (texto motorPortLetter, poder de número, modo de número, modo de regulación de número, número turnRatio,
número runState, número tachoLimit)
Establece el estado de salida de un motor en el robot.
StartProgram (nombre del programa de texto)
Iniciar la ejecución de un programa previamente descargado en el robot.
StopProgram ()
Detener la ejecución del programa actualmente en ejecución en el robot.
StopSoundPlayback ()
Detener la reproducción de sonido.
NxtColorSensor

Un componente que proporciona una interfaz de alto nivel para un sensor de color en un robot LEGO MINDSTORMS NXT

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

DetectColor
Si el sensor debe detectar color o luz.
Verdadero indica que el sensor debe detectar el color; Falso indica que el sensor debe detectar la luz.
Si la propiedad DetectColor se establece en True, los eventos BelowRange, WithinRange y AboveRange no ocurrirán y el sensor no generará color.
Si la propiedad DetectColor se establece en False, el evento ColorChanged no se producirá.
ColorChangedEventEnabled
Si el evento ColorChanged debe activarse cuando la propiedad DetectColor se establece en True y el color detectado cambia.
GenerateColor
El color que debe generar el sensor.
Solo Ninguno, Rojo, Verde o Azul son valores válidos.
El sensor no generará color cuando la propiedad DetectColor se establece en True.
BottomOfRange
La parte inferior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
TopOfRange
La parte superior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
BelowRangeEventEnabled
Si el evento BelowRange debe activarse cuando la propiedad DetectColor se establece en False y el nivel de luz desciende por debajo de
BottomOfRange.
WithinRangeEventEnabled
Si el evento WithinRange debe activarse cuando la propiedad DetectColor se establece en False y el nivel de luz va entre BottomOfRange y
TopOfRange.
AboveRangeEventEnabled
Si el evento AboveRange debe activarse cuando la propiedad DetectColor se establece en False y el nivel de luz supera el TopOfRange.

Eventos
ColorChanged(number color)
El color detectado ha cambiado.
El evento ColorChanged no se producirá si la propiedad DetectColor se establece en False o si la propiedad ColorChangedEventEnabled se
establece en False.
BelowRange()
El nivel de luz ha ido por debajo del rango.
El evento BelowRange no ocurrirá si la propiedad DetectColor se establece en True o si la propiedad BelowRangeEventEnabled se establece en
False.
WithinRange()
El nivel de luz se ha ido dentro del rango.
El evento WithinRange no se producirá si la propiedad DetectColor se establece en True o si la propiedad WithinRangeEventEnabled se establece
en False.
AboveRange()
El nivel de luz ha ido por encima del rango.
El evento AboveRange no ocurrirá si la propiedad DetectColor se establece en True o si la propiedad AboveRangeEventEnabled se establece en
False.

Métodos
GetColor ()
Devuelve el color detectado actualmente, o el color Ninguno si el color no se puede leer o si la propiedad DetectColor está establecida en Falso.
GetLightLevel ()
Devuelve el nivel de luz actual como un valor entre 0 y 1023, o -1 si no se puede leer el nivel de luz o si la propiedad DetectColor se establece en
Verdadero.

NxtLightSensor

Un componente que proporciona una interfaz de alto nivel para un sensor de luz en un robot LEGO MINDSTORMS NXT

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

GenerateLight
Si el sensor de luz debe generar luz.
BottomOfRange
La parte inferior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
TopOfRange
La parte superior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
BelowRangeEventEnabled
Si el evento BelowRange debe activarse cuando el nivel de luz desciende por debajo de BottomOfRange.
WithinRangeEventEnabled
Si el evento WithinRange debe activarse cuando el nivel de luz va entre BottomOfRange y TopOfRange.
AboveRangeEventEnabled
Si el evento AboveRange debe dispararse cuando el nivel de luz supera el TopOfRange.

Eventos
BelowRange()
El nivel de luz ha ido por debajo del rango.
WithinRange()
El nivel de luz se ha ido dentro del rango.
AboveRange()
El nivel de luz ha ido por encima del rango.

Métodos
GetLightLevel ()

Devuelve el nivel de luz actual como un valor entre 0 y 1023, o -1 si no se puede leer el nivel de luz.

NxtSoundSensor

Un componente que proporciona una interfaz de alto nivel para un sensor de sonido en un robot LEGO MINDSTORMS NXT

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

BottomOfRange
La parte inferior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
TopOfRange
La parte superior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
BelowRangeEventEnabled
Si el evento BelowRange debe activarse cuando el nivel de sonido desciende por debajo de BottomOfRange.
WithinRangeEventEnabled
Si el evento WithinRange debe activarse cuando el nivel de sonido va entre BottomOfRange y TopOfRange.
AboveRangeEventEnabled
Si el evento AboveRange debe dispararse cuando el nivel de sonido supera el TopOfRange.

Eventos
BelowRange()
El nivel de sonido ha bajado del rango.
WithinRange()
El nivel de sonido ha ido dentro del rango.
AboveRange()
El nivel de sonido ha ido por encima del rango.

Métodos
GetSoundLevel ()

Devuelve el nivel de sonido actual como un valor entre 0 y 1023, o -1 si no se puede leer el nivel de sonido.
NxtTouchSensor

Un componente que proporciona una interfaz de alto nivel para un sensor táctil en un robot LEGO MINDSTORMS NXT

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

PressedEventEnabled
Si el evento Presionado debe dispararse cuando se presiona el sensor táctil.
ReleasedEventEnabled
Si el evento Liberado debe dispararse cuando se suelta el sensor táctil.

Eventos
Pressed()
Se ha presionado el sensor táctil.
Released()
Se ha liberado el sensor táctil.

Métodos
IsPressed ()
Devuelve verdadero si se presiona el sensor táctil.

NxtUltrasonicSensor

Un componente que proporciona una interfaz de alto nivel para un sensor ultrasónico en un robot LEGO MINDSTORMS NXT

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

BottomOfRange
La parte inferior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
TopOfRange
La parte superior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
BelowRangeEventEnabled
Si el evento BelowRange debe activarse cuando la distancia se encuentre por debajo de BottomOfRange.
WithinRangeEventEnabled
Si el evento WithinRange debería activarse cuando la distancia se encuentre entre BottomOfRange y TopOfRange.
AboveRangeEventEnabled
Si el evento AboveRange debe dispararse cuando la distancia supera el TopOfRange.
Eventos
BelowRange()
La distancia ha ido por debajo del rango.
WithinRange()
La distancia ha ido dentro del rango.
AboveRange()
La distancia ha ido por encima del rango.

Métodos
GetDistance ()

Devuelve la distancia actual en centímetros como un valor entre 0 y 254, o -1 si no se puede leer la distancia.

NxtDrive

Un componente que proporciona una interfaz de alto nivel para un robot LEGO MINDSTORMS NXT, con funciones que pueden mover y girar el robot.

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

DriveMotors
Los puertos del motor que se utilizan para la conducción.
WheelDiameter
El diámetro de las ruedas utilizadas para la conducción.
StopBeforeDisconnect
Ya sea para detener los motores de accionamiento antes de desconectar.

Métodos
MoveForwardIndefinitely (potencia del número)

Mueva el robot hacia adelante indefinidamente, con el porcentaje especificado de potencia máxima.
MoveForward (potencia del número, distancia del número)
Mueva el robot hacia adelante la distancia dada, con el porcentaje especificado de potencia máxima.
MoveBackwardIndefinitely (potencia del número)
Mueva el robot hacia atrás indefinidamente, con el porcentaje especificado de potencia máxima.
MoveBackward (potencia del número, distancia del número)
Mueva el robot hacia atrás la distancia dada, con el porcentaje especificado de potencia máxima.
Stop ()
Detener los motores de accionamiento del robot.
TurnClockwiseIndefinitely (potencia del número)
Gire el robot en sentido horario indefinidamente, con el porcentaje de potencia máxima especificado.
TurnCounterClockwiseIndefinitely (potencia del número)
Gire el robot en sentido antihorario indefinidamente, con el porcentaje de potencia máxima especificado.

Motores de ev3

Un componente que proporciona interfaces de alto y bajo nivel a un robot LEGO MINDSTORMS EV3, con funciones que pueden controlar los motores.
Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

MotorPorts
Los puertos del motor al que están conectados los motores. Los puertos están especificados por una secuencia de letras de puerto. Debe
establecerse en el Diseñador

WheelDiameter
El diámetro de las ruedas acopladas a los motores en centímetros.
ReverseDirection
Especifica si se invierte la dirección de los motores.
EnableSpeedRegulation
El robot ajusta la potencia para mantener la velocidad si la regulación de velocidad está habilitada.
StopBeforeDisconnect
Si detener el motor antes de desconectarlo.
TachoCountChangedEventEnabled
Si el evento TachoCountChanged debería dispararse cuando se cambia el ángulo.

Métodos
RotateIndefinitely (potencia del número)

Empieza a girar los motores.


RotateInTachoCounts (potencia de número, número de cuentas de tacho, uso booleanoBrake)
Gire los motores en una serie de conteos de tacómetro.
RotateInDuration (potencia de número, número de milisegundos, uso booleano Brake)
Gire los motores en un período de tiempo.
RotateInDistance (potencia del número, distancia del número, uso booleano Brake)
Gire los motores en una distancia.
RotateSyncIndefinitely (potencia de número, número turnRatio)
Empieza a girar los motores a la misma velocidad.
RotateSyncInDistance (potencia del número, distancia del número, número turnRatio, uso booleano Brake)
Gire los motores a la misma velocidad para una distancia en cm.
RotateSyncInDuration (potencia de número, número de milisegundos, número turnRatio, uso booleano Brake)
Gire los motores a la misma velocidad en un período de tiempo.
RotateSyncInTachoCounts (poder de número, número de cuentas de tacho, número turnRatio, uso booleano Brake)
Gire los motores a la misma velocidad en varios conteos de tacómetro.
Stop (uso booleano, freno)
Detener los motores del robot.
ToggleDirection ()
Alternar la dirección de los motores.
ResetTachoCount ()
Establezca el recuento de tacos actual en cero.
GetTachoCount ()
Obtener el recuento de tacho actual.

Ev3ColorSensor

Un componente que proporciona una interfaz de alto nivel para un sensor de color en un robot LEGO MINDSTORMS EV3.
Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

BottomOfRange
La parte inferior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
TopOfRange
La parte superior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
BelowRangeEventEnabled
Si el evento BelowRange debe activarse cuando el nivel de luz desciende por debajo de BottomOfRange.
WithinRangeEventEnabled
Si el evento WithinRange debe activarse cuando el nivel de luz va entre BottomOfRange y TopOfRange.
AboveRangeEventEnabled
Si el evento AboveRange debe dispararse cuando el nivel de luz supera el TopOfRange.
ColorChangedEventEnabled
Si el evento ColorChanged debe activarse cuando la propiedad de Modo se establece en "color" y el color detectado cambia.
Mode
Obtener el modo de sensor actual.

Métodos
GetLightLevel ()

Devuelve el nivel de luz en porcentaje, o -1 cuando no se puede leer el nivel de luz.


GetColorCode ()
Devuelve el código de color de 0 a 7 correspondiente a ningún color, negro, azul, verde, amarillo, rojo, blanco y marrón.
GetColorName ()
Devuelva el nombre del color en uno de "Sin color", "Negro", "Azul", "Verde", "Amarillo", "Rojo", "Blanco", "Marrón".
SetColorMode ()
Entra en el modo de detección de color.
SetReflectedMode ()
Haga que el sensor lea el nivel de luz con luz reflejada.
SetAmbientMode ()
Haga que el sensor lea el nivel de luz sin luz reflejada.

Ev3GyroSensor

Un componente que proporciona una interfaz de alto nivel para un sensor de giro en un robot LEGO MINDSTORMS EV3.

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

Mode
El modo de sensor puede ser una constante de texto de "tasa" o "ángulo", que corresponde a SetAngleMode o SetRateMode respectivamente.
SensorValueChangedEventEnabled
Si el evento SensorValueChanged debe dispararse cuando el valor del sensor cambia.
Métodos
GetSensorValue ()

Devuelve el ángulo actual o la velocidad de rotación según el modo actual, o -1 si el valor no se puede leer desde el sensor.
SetAngleMode ()
Mide la orientación del sensor.
SetRateMode ()
Mide la velocidad angular del sensor.

Ev3TouchSensor

Un componente que proporciona una interfaz de alto nivel para un sensor táctil en un robot LEGO MINDSTORMS EV3.

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

PressedEventEnabled
Si el evento Liberado debe dispararse cuando se presiona el sensor táctil.
ReleasedEventEnabled
Si el evento Liberado debe dispararse cuando se suelta el sensor táctil.
Métodos
IsPressed ()

Devuelve verdadero si se presiona el sensor táctil.

Ev3UltrasonicSensor

Un componente que proporciona una interfaz de alto nivel para un sensor ultrasónico en un robot LEGO MINDSTORMS EV3.

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

SensorPort
El puerto del sensor al que está conectado el sensor. Debe establecerse en el Diseñador

BottomOfRange
La parte inferior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
TopOfRange
La parte superior del rango utilizado para los eventos BelowRange, WithinRange y AboveRange.
BelowRangeEventEnabled
Si el evento BelowRange debe activarse cuando la distancia se encuentre por debajo de BottomOfRange.
WithinRangeEventEnabled
Si el evento WithinRange debería activarse cuando la distancia se encuentre entre BottomOfRange y TopOfRange.
AboveRangeEventEnabled
Si el evento AboveRange debe dispararse cuando la distancia supera el TopOfRange.
Unit
La unidad de distancia, que puede ser "cm" o "pulgada".

Métodos
GetDistance ()

Devuelve la distancia actual en centímetros como un valor entre 0 y 254, o -1 si no se puede leer la distancia.
SetCmUnit ()
Medir la distancia en centímetros.
SetInchUnit ()
Medir la distancia en pulgadas.

Ev3Sound

Un componente que proporciona una interfaz de alto nivel para un robot LEGO MINDSTORMS EV3, que proporciona funcionalidades de sonido.

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

Métodos
PlayTone (volumen de números, frecuencia de números, número de milisegundos)

Haz que el robot toque un tono.


StopSound ()
Detener cualquier sonido en el robot.

Ev3UI

Un componente que proporciona una interfaz de alto nivel para un robot LEGO MINDSTORMS EV3, con funciones para dibujar gráficos en la pantalla EV3.

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

Métodos
DrawPoint (número de color, número x, número y)

Dibuja un punto en la pantalla.


DrawIcon (color del número, número x, número y, tipo de número, número de número)
Dibuja un icono incorporado en la pantalla.
DrawLine (número de color, número x1, número y1, número x2, número y2)
Dibuja una línea en la pantalla.
DrawRect (color del número, número x, número y, ancho del número, altura del número, relleno booleano)
Dibuja un rectángulo en la pantalla.
DrawCircle (color del número, número x, número y, radio del número, relleno booleano)
Dibuja un círculo en la pantalla.
FillScreen (número de color)
Llena la pantalla con un color.
Ev3Commands

Un componente que proporciona una interfaz de bajo nivel para un robot LEGO MINDSTORMS EV3, con funciones para enviar el sistema o comandos
directos a los robots EV3.

Propiedades
BluetoothClient
El componente BluetoothClient que se debe utilizar para la comunicación. Debe establecerse en el Diseñador

Métodos
KeepAlive (número de minutos)

Mantenga el ladrillo EV3 de apagado por un período de tiempo.


GetBatteryVoltage ()
Consigue el voltaje de la batería.
GetBatteryCurrent ()
Obtener la corriente de la batería.
GetOSVersion ()
Obtener la versión del sistema operativo en EV3.
GetOSBuild ()
Consigue el sistema operativo basado en EV3.
GetFirmwareVersion ()
Obtén la versión de firmware en EV3.
GetFirmwareBuild ()
Obtener la compilación de firmware en EV3.
GetHardwareVersion ()
Consigue la versión de hardware de EV3.

Componentes experimentales - App Inventor para Android

Tabla de contenido
 CloudDB
 FirebaseDB

CloudDB

Componente no visible que le permite almacenar datos en un servidor de base de datos conectado a Internet (utilizando el software Redis). Esto permite a
los usuarios de su aplicación compartir datos entre sí. De forma predeterminada, los datos se almacenarán en un servidor mantenido por MIT, sin embargo,
puede configurar y ejecutar su propio servidor. Establezca la propiedad "RedisServer" y la propiedad "RedisPort" para acceder a su propio servidor.

Propiedades
ProjectID

Obtiene el ProjectID para este proyecto CloudDB.


RedisPort
El puerto del servidor Redis para usar. El valor predeterminado es 6381
RedisServer
El servidor de Redis para usar para almacenar datos. Una configuración de "DEFAULT" significa que se utilizará el servidor MIT.
Token (solo diseñador)
Este campo contiene el token de autenticación utilizado para iniciar sesión en el servidor Redis respaldado. Para el servidor "DEFAULT", no edite
este valor, el sistema lo completará por usted. Un administrador del sistema también puede proporcionarle un valor especial que puede usarse para
compartir datos entre múltiples proyectos de varias personas. Si usa su propio servidor Redis, establezca una contraseña en la configuración del
servidor e ingrésela aquí.
UseSSL (solo diseñador)
Establézcalo en verdadero para usar SSL para hablar con el servidor CloudDB / Redis. Esto se debe establecer en Verdadero para el servidor
"DEFAULT".

Eventos
CloudDBError(text message)
Indica que se produjo un error al comunicarse con el servidor CloudDB Redis.
DataChanged(text tag, any value)
Indica que los datos en el proyecto CloudDB han cambiado. Inicia un evento con la etiqueta y el valor que se han actualizado.
FirstRemoved(any value)
Evento desencadenado por la función "RemoveFirstFromList". El argumento "valor" es el objeto que fue el primero en la lista y que ahora se elimina.
GotValue(text tag, any value)
Indica que una solicitud GetValue ha tenido éxito.
TagList(list value)
Evento activado cuando recibimos la lista de etiquetas conocidas. Utilizado con la función "GetTagList".

Métodos
AppendValueToList(text tag, any itemToAdd)
Agregue un valor al final de una lista atómicamente. Si dos dispositivos usan esta función simultáneamente, ambos se agregarán y no se perderán
datos.
ClearTag(text tag)
Eliminar la etiqueta de CloudDB
boolean CloudConnected()
devuelve True si estamos en la red y es probable que podamos conectarnos al servidor CloudDB.
GetTagList()
Obtenga la lista de etiquetas para esta aplicación. Cuando complete un evento "TagList" se activará con la lista de etiquetas conocidas.
GetValue(text tag, any valueIfTagNotThere)
GetValue le pide a CloudDB que obtenga el valor almacenado bajo la etiqueta dada. Pasará valueIfTagNotThere a GotValue si no hay un valor
almacenado bajo la etiqueta.
RemoveFirstFromList(text tag)
Devuelve el primer elemento de una lista y elimínalo atómicamente. Si dos dispositivos usan esta función simultáneamente, uno obtendrá el primer
elemento y el otro obtendrá el segundo elemento, o un error si no hay ningún elemento disponible. Cuando el elemento esté disponible, se activará el
evento "FirstRemoved".
StoreValue(text tag, any valueToStore)
Pide a CloudDB que almacene el valor dado bajo la etiqueta dada. Si el valor comienza con "file: ///" o "/ storage /", CloudDB interpretará el valor
como un nombre de archivo y enviará el contenido del archivo nombrado. La extensión del archivo debe ser de 3 caracteres (por ejemplo, ".png",
".wav"). Cuando se recibe a través de GotValue o DataChanged, el archivo se guardará en el almacenamiento público del dispositivo y el valor
reflejará la nueva ubicación.

FirebaseDB

Componente no visible que se comunica con Firebase para almacenar y recuperar información.
Información Adicional

Propiedades
DeveloperBucket (solo diseñador)

FirebaseToken (solo diseñador)

FirebaseURL
Obtiene la URL para este FirebaseDB.
Persist (solo diseñador)
Si es verdadero, las variables mantendrán sus valores cuando se encuentre fuera de línea y la aplicación salga. Los valores se cargarán a Firebase
la próxima vez que se ejecute la aplicación mientras esté conectado a la red. Esto es útil para aplicaciones que recopilarán datos mientras no estén
conectados a la red. Nota: AppendValue y RemoveFirst no funcionarán correctamente cuando estén fuera de línea, requieren una conexión de red.
Nota : Si configura Persistir en cualquier componente de Firebase, en cualquier pantalla, hace que todos los componentes de Firebase en todas las
pantallas sean persistentes. Esta es una limitación de la biblioteca Firebase de bajo nivel. También tenga en cuenta que si desea establecer persistir
en verdadero, debe hacerlo antes de conectar el Acompañante para un desarrollo incremental.

ProjectBucket
Obtiene el ProjectBucket para este FirebaseDB.

Eventos
DataChanged(text tag, any value)
Indica que los datos en Firebase han cambiado. Inicia un evento con la etiqueta y el valor que se han actualizado.
FirebaseError(text message)
Indica que la comunicación con Firebase señaló un error.
FirstRemoved(any value)
Evento desencadenado por la función "RemoveFirst". El argumento "valor" es el objeto que fue el primero en la lista y que ahora se elimina.
GotValue(text tag, any value)
Indica que una solicitud GetValue ha tenido éxito.
TagList(list value)
Evento activado cuando recibimos la lista de etiquetas conocidas. Utilizado con la función "GetTagList".

Métodos
AppendValue(text tag, any valueToAdd)
Agregue un valor al final de una lista atómicamente. Si dos dispositivos usan esta función simultáneamente, ambos se agregarán y no se perderán
datos.
GetTagList()
Obtenga la lista de etiquetas para esta aplicación. Cuando complete un evento "TagList" se activará con la lista de etiquetas conocidas.
GetValue(text tag, any valueIfTagNotThere)
GetValue le pide a Firebase que obtenga el valor almacenado bajo la etiqueta dada. Pasará valueIfTagNotThere a GotValue si no hay un valor
almacenado bajo la etiqueta.
RemoveFirst(text tag)
Devuelve el primer elemento de una lista y elimínalo atómicamente. Si dos dispositivos usan esta función simultáneamente, uno obtendrá el primer
elemento y el otro obtendrá el segundo elemento, o un error si no hay ningún elemento disponible. Cuando el elemento esté disponible, se activará el
evento "FirstRemoved".
ClearTag(text tag)
Eliminar la etiqueta de Firebase
StoreValue(text tag, any valueToStore)
Le pide a Firebase que almacene el valor dado bajo la etiqueta dada.
Si tiene dificultades con el Acompañante y está cambiando entre diferentes cuentas de Firebase, es posible que deba usar esta función para borrar
los cachés internos de Firebase. Puede usar la función "Hacerlo" en este bloque en el editor de bloques. Nota: Normalmente, no debería necesitar
usar este bloque como parte de una aplicación.
Configuración de la aplicación Inventor
Puede configurar App Inventor y comenzar a crear aplicaciones en minutos. El Diseñador y el Editor de bloques se ejecutan completamente en el navegador
(también conocido como la nube) . Para ver su aplicación en un dispositivo mientras la construye (también llamada "Prueba en vivo"), deberá seguir los
pasos a continuación.

Tienes tres opciones para configurar pruebas en vivo mientras construyes aplicaciones
Si está utilizando un dispositivo Android y tiene una conexión inalámbrica a Internet , puede comenzar a crear aplicaciones sin descargar ningún
software a su computadora. Deberá instalar la aplicación App Inventor Companion en su dispositivo. Elija la Opción Uno a continuación. Esta opción es
INCREÍBLEMENTE RECOMENDADA.
Si no tiene un dispositivo Android , deberá instalar el software en su computadora para poder usar el emulador de Android en pantalla. Elija la Opción Dos
acontinuación.
Si no tiene una conexión inalámbrica a Internet , deberá instalar el software en su computadora para poder conectarse a su dispositivo Android a través
de USB. Elija la opción tres a continuación. La opción de conexión USB puede ser complicada, especialmente en Windows. Utilice esto como último recurso.
Opción uno: RECOMENDADO
Cree aplicaciones con un dispositivo Android y conexión WiFi (preferido): Instrucciones
Si tiene una computadora, un dispositivo Android y una conexión WiFi, esta es la forma más fácil de probar sus aplicaciones.
Opción dos
¿No tienes un dispositivo Android? Usa el emulador: Instrucciones
Si no tiene a mano un teléfono o una tableta con Android, aún puede utilizar App Inventor. ¿Tienes una clase de 30 estudiantes? Haga que trabajen
principalmente en emuladores y compartan algunos dispositivos.
Opción Tres ¿
No hay WiFi? Crea aplicaciones con un dispositivo Android y un cable USB: instrucciones
Algunos firewalls dentro de las escuelas y organizaciones no permiten el tipo de conexión WiFi requerida. Si WiFi no funciona para ti, prueba USB.
Requisitos del sistema

Nota: Internet Explorer no es compatible. Recomendamos Chrome o Firefox.

Computadora y sistema operativo


 Macintosh (con procesador Intel): Mac OS X 10.5 o superior
 Windows: Windows XP, Windows Vista, Windows 7
 GNU / Linux: Ubuntu 8 o superior, Debian 5 o superior (Nota: el desarrollo en vivo de GNU / Linux solo se admite para conexiones WiFi entre computadoras y
dispositivos Android).
Navegador
 Mozilla Firefox 3.6 o superior
 (Nota: si está utilizando Firefox con la extensión NoScript, deberá desactivar la extensión. Consulte la nota en la página de resolución de problemas ).
 Apple Safari 5.0 o superior
 Google Chrome 4.0 o superior
 Microsoft Internet Explorer no es compatible
Teléfono o tableta (o use el emulador en pantalla)
 Sistema operativo Android 2.3 ("Gingerbread") o superior
Diseñador y editor de bloques
App Inventor consiste en el Diseñador y el Editor de Bloques . Estos se describen en detalle a continuación.
App Inventor Designer
Diseñe la interfaz de usuario de la aplicación organizando los componentes en pantalla y fuera de la pantalla.
App Inventor Blocks Editor
Programa el comportamiento de la aplicación poniendo bloques juntos.
<< Volver a la Guía de introducción

Conceptos importantes en la aplicación Inventor 2


Hay varios conceptos en App Inventor que es importante conocer. La lista de temas se encuentra a
continuación.
Véase también: App Inventor Glossary
 Publicando aplicaciones en Google Play Store
 Entendiendo las variables locales y globales
 Usando listas
 Comandos y expresiones
 Flujo de control
 Distribución de componentes en la pantalla
 Manipular el estado del componente: Getters y Setters
 Usando Bloques Condicionales
 Eventos y manejadores de eventos
 Usando pantallas múltiples en una aplicación
 Generador de números pseudoaleatorios y semillas de conjuntos aleatorios
 Datos y bases de datos
 Uso de Activity Starter para iniciar aplicaciones externas como el navegador web del teléfono
 Bloques con Dropdowns
 Trabajando con imágenes y sonidos

Comandos y expresiones
Cuando se dispara un controlador de eventos, ejecuta una secuencia de comandos en su cuerpo. Un comando es un bloque que especifica una acción que
se realizará en el teléfono (por ejemplo, sonidos de reproducción). La mayoría de los bloques de comando son de color púrpura.
El bloque de reproducción es un ejemplo de un comando en HelloPurr:

Algunos comandos requieren uno o más valores de entrada (también conocidos como parámetros o argumentos) para especificar completamente su
acción. Por ejemplo, la llamada Sound1.Vibrate necesita saber la cantidad de milisegundos para vibrar, establecer Label1.BackgroundColor necesita saber el
nuevo color de fondo de la etiqueta, y establecer Label1.text debe conocer la nueva cadena de texto para la etiqueta. La necesidad de valores de entrada se
muestra mediante sockets en el borde derecho del comando. Estos sockets se pueden rellenar con expresiones, bloques que denotan un valor. Los bloques de
expresión tienen enchufes que apuntan hacia la izquierda que usted puede imaginar que transmiten el valor al socket. Las expresiones más grandes se
pueden construir a partir de las más simples por composición horizontal. Por ejemplo, todas las siguientes expresiones denotan el número 500:

Los comandos tienen una forma tal que naturalmente se componen verticalmente en una pila de comandos, que es solo un comando grande construido a
partir de otros más pequeños. Aquí hay una pila con cuatro comandos:
Cuando esta pila de comandos se coloca en el cuerpo de un controlador de eventos (por ejemplo, el controlador de eventos when.Button1.Click), el comando
se ejecutará de arriba a abajo. Si se ejecuta la pila de comandos de arriba, el teléfono primero reproducirá el sonido, luego vibrará, luego cambiará el color de
la etiqueta a naranja, y luego la etiqueta mostrará el texto "¡CS oscila!" Sin embargo, la ejecución funciona muy rápido: vería que todas las acciones suceden
al mismo tiempo.
Volver a los conceptos principales de AI2

Flujo de control
Cuando se activa un controlador de eventos, puedes imaginar que crea un punto de control similar a un karaoke que fluye a través de la pila de comandos en
su cuerpo. El punto de control se mueve desde la parte superior de la pila hasta la parte inferior, y cuando llega a un comando, ese comando se ejecuta, es
decir, se ejecuta la acción de ese comando. Pensar en el control que "fluye" a través de un programa nos ayudará a entender su comportamiento.
El orden de los comandos o el flujo de control es importante cuando crea una aplicación. Necesitas asegurarte de qué acción debe venir primero.
Volver a los conceptos principales de AI2

Distribución de componentes en la pantalla


Los componentes de la aplicación están organizados verticalmente por defecto. En la paleta de diseño, el uso de HorizontalArrangement y
VerticalArrangement puede permitirle cambiar la organización de sus componentes.
Volver a los conceptos principales de AI2

Manipulación del estado de los componentes: uso de captadores y definidores


Cada componente se caracteriza por varias propiedades. ¿Cuáles son algunas de las propiedades de un componente Label? Los valores actuales de estas
propiedades son el estado del componente. Puede especificar el estado inicial de un componente en el panel Propiedades de la ventana del Diseñador. Los
programas de App Inventor pueden obtener y establecer la mayoría de las propiedades de los componentes a través de bloques. Por ejemplo, el ejemplo en
la sección "Comandos" anterior muestra bloques para manipular el estado de Label1.
Los bloques de captador son expresiones que obtienen el valor actual de la propiedad. Los bloques de Setter son comandos que cambian el valor asociado
con la propiedad. Algunas propiedades de la etiqueta no pueden ser manipuladas por bloques. ¿Cuáles?
Volver a los conceptos principales de AI2

Programación de su aplicación para tomar decisiones: uso de bloques condicionales


A veces es posible que desee que su aplicación realice diferentes acciones en diferentes condiciones. Si estuviera creando una aplicación para mantener
todas las horas trabajadas en la semana actual, tendría que probar qué día de la semana es saber dónde almacenar las horas.
Para implementar esto en tu aplicación, necesitarías usar condicionales. Los condicionales se refieren a expresiones o declaraciones que se evalúan como
verdaderas o falsas.
Pruebas condicionales con bloques if y ifelse
App Inventor proporciona dos tipos de bloques condicionales: if y ifelse, ambos se encuentran en el cajón de control de la paleta incorporada.
Puede insertar cualquier expresión booleana en la ranura de "prueba" de estos bloques. Una expresión booleana es una ecuación matemática que devuelve
un resultado de verdadero o falso. La expresión prueba el valor de las propiedades y variables utilizando operadores relacionales y lógicos, como los que se
muestran en la siguiente figura:
Tanto para if como para ifelse, los bloques que coloque dentro de la ranura "then-do" solo se ejecutarán si la prueba es verdadera. Para un bloque if, si la
prueba es falsa, la aplicación pasa a los bloques debajo de él. Si la prueba de ifelse es falsa, se realizan los bloques dentro de la ranura "else-do".
Ejemplo
Obtenga imágenes de bloques y escriba ejemplos utilizando ifelse, booleanos, expresiones, etc.
Para obtener ayuda adicional sobre este tema, consulte el Capítulo 18 de App Inventor: cree sus propias aplicaciones de Android de Dave Wolber, Hal
Abelson, Liz Looney y Ellen Spertus.
Volver a los conceptos principales de AI2

Eventos y manejadores de eventos


Las aplicaciones son impulsadas por eventos. No realizan un conjunto de instrucciones en un orden predeterminado, sino que reaccionan a los
eventos. Hacer clic en un botón, arrastrar el dedo o tocar la pantalla son eventos.
Con App Inventor, toda la actividad ocurre en respuesta a un evento. Su aplicación no debe contener bloques fuera del bloque "cuándo hacer" de un
evento. Por ejemplo, los bloques en la siguiente figura no tienen sentido flotar solos.
A medida que ocurren los eventos, la aplicación reacciona llamando a una secuencia de funciones. Una función es cualquier cosa que pueda hacer para o
con un componente, como establecer el color de fondo de un botón en azul o cambiar el texto de una etiqueta. Llamamos a un evento y al conjunto de
funciones que se realizan en respuesta a él: un controlador de eventos.
Los eventos se pueden dividir en 2 tipos diferentes: iniciados por el usuario y automáticos. Hacer clic en un botón, tocar o arrastrar la pantalla, e inclinar el
teléfono son eventos iniciados por el usuario. Los satélites que chocan entre sí o con los bordes del lienzo son eventos automáticos.
Para obtener ayuda adicional sobre este tema, consulte el Capítulo 14 de App Inventor: cree sus propias aplicaciones de Android de Dave Wolber, Hal
Abelson, Liz Looney y Ellen Spertus.
Volver a los conceptos principales de AI2

Usando pantallas múltiples en una aplicación


En App Inventor, puede hacer que una pantalla abra una segunda pantalla. Más tarde, la segunda pantalla puede volver a la pantalla que la abrió. Puede
tener tantas pantallas como desee, pero cada pantalla se cierra volviendo a la pantalla que la abrió. Las pantallas pueden compartir información pasando y
devolviendo valores cuando se abren y cierran.
Crear una aplicación con múltiples pantallas es muy parecido a crear varias aplicaciones individuales. Cada pantalla que crea tiene sus propios componentes
en la ventana del Diseñador. En el Editor de bloques, podrá ver solo los componentes de la pantalla actualmente seleccionada en el Diseñador. De manera
similar, los bloques de código relacionados con una pantalla no pueden referirse a bloques de código en otra pantalla. Para obtener más
información, consulte el Tutorial de la aplicación Colored Dots que explica en detalle múltiples pantallas.
Volver a los conceptos principales de AI2
Generador de números pseudoaleatorios y semillas de conjuntos aleatorios
Un generador de números pseudoaleatorios es un algoritmo para generar una secuencia de números que se aproxima a las propiedades de los números
aleatorios. Una semilla aleatoria es un número o un vector que se elige y utiliza para inicializar este generador de números. Al elegir diferentes semillas
aleatorias, su algoritmo elegirá números aleatorios de una manera ligeramente diferente. La elección de una semilla única devolverá una secuencia de
números aleatorios única.
Lo que esto significa es que si continuamente usa la misma semilla y elige un elemento aleatorio para una gran cantidad de pruebas y datos, no obtendrá
resultados tan diversos o verdaderamente aleatorios como si eligiera una nueva semilla cada vez.
Volver a los conceptos principales de AI2

Datos y bases de datos


Una base de datos es un lugar donde la información o los datos se pueden almacenar hasta que se eliminen o reemplacen. Facebook utiliza una base de
datos para almacenar nombres de usuario y contraseñas correspondientes. Los dispositivos Android tienen bases de datos internas que almacenan
información sobre usted o su teléfono. App Inventor nos permite acceder a esta base de datos mediante el uso de TinyDB.
App Inventor facilita el almacenamiento de datos a través de sus componentes TinyDB y TinyWebDB. Los datos siempre se almacenan como un par
etiqueta-valor, con la etiqueta que identifica los datos para su posterior recuperación. TinyDB se debe utilizar cuando sea apropiado para almacenar datos
directamente en el dispositivo. Cuando los datos deben compartirse entre teléfonos (por ejemplo, para un juego de varios jugadores o una aplicación de
votación), deberá usar TinyWebDB en su lugar. TinyWebDB es más complicado porque necesita configurar un procedimiento de devolución de llamada (el
controlador de eventos GotValue), así como un servicio de base de datos web.
Para crear su propio servicio web, siga las instrucciones en la página del componente TinyWebDB.
Para obtener ayuda adicional sobre este tema, consulte el Capítulo 22 de App Inventor: cree sus propias aplicaciones de Android de Dave Wolber, Hal
Abelson, Liz Looney y Ellen Spertus.
Volver a los conceptos principales de AI2
Publicando aplicaciones en Google Play (App Inventor 2)
Cargando aplicaciones a Google Play
¡Las aplicaciones creadas con App Inventor se pueden cargar en Google Play!
Versión de su aplicación
Cada aplicación que publiques debe tener una VersionCodey una VersionName. Puede establecerlos en el diseñador en el panel de propiedades
del Screen1componente.
VersionCodees un valor entero que no será visible para los usuarios de Google Play Store. Es usado por otras aplicaciones para verificar si su aplicación ha
sido actualizada o degradada. El valor predeterminado es 1 y debe incrementarse en uno con cada cambio sucesivo, ya sea un cambio importante o un
cambio menor.
VersionNamees una cadena que puede ser lo que quieras. Se establece por defecto a 1.0. Una estructura común es un número decimal que se incrementa en
1 por cada cambio importante y 0,1 por cada cambio menor. Por ejemplo, un VersionName inicial podría ser 1.0 que se puede actualizar a 1.1 después de un
pequeño cambio y 2.0 después de un cambio más grande.
Deberá aumentar el Código de versión y cambiar el Nombre de la versión de su aplicación cuando cargue una nueva versión en Play Store.
Descargar .apk
Una vez que haya terminado de crear su aplicación, puede descargar su archivo .apk de Android de la siguiente manera:

1. Vaya a la pantalla de inicio de la aplicación que desea descargar en App Inventor


2. Haga clic en el menú desplegable etiquetado "Paquete para teléfono"
3. Haga clic en "Descargar a esta computadora"
Esto le pedirá que guarde la aplicación en algún lugar. Una vez que haya descargado el archivo .apk, estará listo para comenzar el proceso de publicación.
Publique su aplicación

Ahora puede ir a la página de inicio de publicaciones de Google Play y seguir los pasos para publicar su aplicación en Google Play.
Para obtener más detalles, es posible que desee comenzar con Introducción a la publicación en Google Play y el Soporte de Google para cargar en Google
Play .
Una palabra acerca de las copias de seguridad

Una vez que publique su aplicación en Google Play Store, otras personas ahora dependerán de usted para corregir errores y mantener su aplicación. Por lo
tanto, es muy importante que realice una copia de seguridad del código fuente de su aplicación. Para hacer esto, haga clic en "Proyecto -> Mis proyectos",
marque la casilla junto al nombre de su proyecto y luego seleccione "Proyecto -> Exportar el proyecto seleccionado (.aia) a mi computadora". Esto
descargará un archivo zip que contiene el código fuente de sus proyectos. Guárdelo en un lugar seguro!
MIT y Google, que operan el servicio App Engine en el que se basa MIT App Inventor, hacen todo lo posible para garantizar que MIT App Inventor no pierda
proyectos. SIN EMBARGO, NO PODEMOS OFRECER NINGUNA GARANTÍA DE QUE LOS DATOS (COMO SUS PROYECTOS) NUNCA SE
PERDERÁN. ¡ES IMPERATIVO QUE HAGAS TUS RESPALDOS!
Una palabra acerca de los almacenes de claves:
Durante el proceso de construcción de .apk, su solicitud se firma con una clave privada digital que está asociada con su cuenta. Cuando creas una nueva
versión, esta misma clave se usa para firmar la nueva versión. Cuando un teléfono Android tiene una aplicación instalada, recuerda la clave que se utilizó
para firmarlo. Para instalar una versión actualizada de una aplicación, la nueva aplicación debe estar firmada por la misma clave. Por eso es importante que
no pierdas esta llave!
Su clave digital privada se almacena en un archivo de almacén de claves. Normalmente, el servidor MIT App Inventor creará este archivo cuando sea
necesario y lo almacenará para que usted no tenga que preocuparse por él. Aunque no prevemos perder su archivo de almacén de claves, le recomendamos
que lo respalde. Desde el diseñador en el menú "Proyectos" hay una opción etiquetada como "Exportar almacén de claves". Seleccione esta opción. Esto
descargará su archivo de almacén de claves a su computadora local. Guárdalo en un lugar seguro. No debe ser legible públicamente, ya que su clave digital
privada es un secreto que no debe compartirse.
Si mueve su proyecto a otro servidor de App Inventor, querrá cargar su almacén de claves en ese servidor (verá que en "Proyectos" también hay una opción
"Importar almacén de claves"). Solo necesita hacer esto si está publicando archivos .apk en Google Play o si tiene la intención de compartir su aplicación con
otras personas en general.
SI SU archivo de claves se pierde o se elimina, NO SE PUEDE RECUPERAR. Si pierde el código fuente de su proyecto, siempre puede volver a ingresarlo
desde cero (esto puede ser una gran cantidad de trabajo, pero es algo que puede hacer). NI USTED NI MIT PUEDEN RECUPERAR UN ARCHIVO
PERDIDO. NINGUNA CANTIDAD DE ESFUERZO LO RECUPERARÁ, ASÍ ASEGÚRESE DE ASEGURARLO!

Variables globales vs locales (App Inventor 2)


Las variables se pueden considerar como contenedores que contienen valores. Hay dos tipos de variables que podemos usar: global y local.

Variables globales vs locales (App Inventor 2)


Global Variable
Una variable global es una variable a la que se puede acceder en varios ámbitos. Esto significa que donde quiera que esté en el programa puede usar
esa variable; obtener su valor actual o establecer su valor a otra cosa. Las variables globales se crean utilizando el nombre global de inicialización
para bloquear que se encuentra en el cajón Variables.
Variable local
Una variable local es una variable que se declara dentro de una función o es un argumento que se pasa a una función. Esto significa que solo puede
acceder a estas variables en esa función específica donde se declaran o pasan como un argumento.
Las variables locales se crean cuando:
 los argumentos se pasan a un procedimiento o evento
 usando el nombre local de inicialización para bloquear
 usando una para cada una en la lista o para cada una desde a bloque (estos bucles crearán una variable local para la letra i
Resumen de variables
El cajón Variables proporciona bloques para crear, obtener y establecer variables globales y locales. Las explicaciones de todos los bloques disponibles en
este cajón se pueden encontrar en la página Variables .
Ejemplo de variable global
Saque un bloque de obtención y haga clic en el menú desplegable. No habrá variables para seleccionar. Cree una variable global y asígnele el
nombre cuenta e inicialícela a 0. Haga clic en el menú desplegable del bloque de obtención . Ahora puedes ver el conteo disponible para elegir. Una vez que
haya creado una variable global, siempre estará disponible en el menú desplegable de obtener .
Ejemplo de variable local
Cree una variable local utilizando el nombre local de inicialización en el bloque do y asígnele el nombre a . Ahora arrastre
un bloque establecido y colóquelo fuera del nombre local de inicialización para hacer un bloque. Haga clic en el menú desplegable del conjunto de bloques. No
verá una como una opción en el menú desplegable. Esto se debe a que el bloque de conjunto está fuera del alcance del dominio de la variable local. Mueva
el bloque dentro de la parte do del nombre local de inicialización a in do block. Haga clic en el menú desplegable del bloque de conjunto. Ahora
hay una disponible para elegir.

Etiquetas Variables
Observe cómo cuando usa un bloque obtener o establecer para una variable global. El bloque dirá nombre global .
Cuando se usan obtener o establecer bloques para las variables locales, el bloque solo dirá nombre . Recuerde que las variables locales incluyen variables
creadas desde argumentos a procedimientos o controladores de eventos, variables creadas para usar en bucles, o inicialización de variables locales para
una expresión o declaración de retorno mediante el uso de bloques de inicialización de variables locales de color naranja.

Resumen
Entonces, mientras se encuentra dentro de un bloque de variable local o un procedimiento que tiene argumentos, los argumentos o la variable local que
mencionó también estarán disponibles en el menú desplegable. Pero cuando no estás dentro, no estarán disponibles. Cuando selecciona un valor en el
menú desplegable, el valor interno guardado en esa variable se devolverá y pasará a cualquier bloque al que esté conectado.
¿Por qué necesitaría usar variables locales?
A veces es posible que necesite crear una nueva variable dentro de un procedimiento y solo desea que ese procedimiento pueda usarla.

En este ejemplo, usamos una variable local, altura , para almacenar la altura del triángulo cuya hipotenusa y base nos dan como argumentos. Es posible que
tengamos un procedimiento diferente que utilice la altura como argumento, por lo que no podríamos usar una variable global. Para asegurarnos de eso,
utilizamos variables locales para que la altura en el contexto correcto solo esté disponible en el procedimiento donde se usa.
A veces puede ser más fácil tener variables locales en lugar de crear muchas nuevas globales. O podría permitirnos usar menos bloques.
¿Quieres experimentar más con variables globales y locales? Echa un vistazo a esta lección sobre el alcance variable .

<< Volver a la página principal de conceptos de AI2


Haciendo Listas (App Inventor 2)
¿Qué es una lista?
Muchas aplicaciones utilizan listas de datos. Por ejemplo, un juego puede mantener una lista de puntuaciones altas y tu aplicación de Facebook mantiene
una lista de tus amigos.
Las listas son un tipo de estructura de datos que se utiliza en todos los lenguajes de programación, no solo en App Inventor. Usamos listas para crear y
manipular diferentes conjuntos de valores / elementos.

¿Qué es un índice?
La posición de un elemento en una lista se llama su índice. En App Inventor, el primer elemento de una lista es el índice 1. En la siguiente figura, a tiene
índice 1, btiene índice 2 yc tiene índice 3.

Lo que esto significa es que podemos hacer referencia a un elemento específico dentro de nuestra lista si sabemos qué índice tiene y cuál es el nombre de la
lista.

App Inventor Lists


En App Inventor, puede ser útil tener una lista para almacenar datos como los números en su teléfono, las respuestas para la aplicación Magic Eight Ball o
los nombres de las personas que se encuentran en una conferencia.

Hacemos listas usando el bloque de hacer una lista . Este bloque es un mutador y se puede ampliar o reducir haciendo clic en el signo más azul. Mira el
siguiente gif para más detalles sobre cómo usar este bloque.
App Inventor también proporciona bloques para hacer muchas otras acciones a las listas. Para obtener más información sobre los bloques de lista, consulte
la página de información de bloques de lista .
Usando el Activity Starter (App Inventor 2)
Uso del componente de inicio de actividad (AI2)
El componente de inicio de actividad le permite combinar aplicaciones al hacer que una aplicación inicie otras aplicaciones. Activity Starter es principalmente
para desarrolladores avanzados, pero es una forma clave de extender App Inventor, porque significa que le permite aprovechar las aplicaciones escritas por
otros y creadas con otros marcos de desarrollo.
Las aplicaciones que inicie pueden ser aplicaciones de App Inventor creadas por usted u otros; aplicaciones como la cámara y los mapas que están
preinstalados en el dispositivo; o cualquier aplicación, creada con App Inventor o no, siempre que tenga la información necesaria para proporcionar al
iniciador de actividades.
Para las aplicaciones que están diseñadas adecuadamente, puede pasar valores a las aplicaciones al iniciarlo. También puede iniciar una aplicación y
recuperar un resultado de la misma para usarla en el procesamiento posterior, siempre que la aplicación esté diseñada para devolver un resultado. En la
actualidad, puede pasar y recibir valores de texto solamente.
Para iniciar otra aplicación, debe proporcionar cierta información de control al sistema operativo Android. Para ello, configure varias propiedades de Activity
Starter antes de llamar al método StartActivity. Esta sección da algunos ejemplos.
Iniciar otra aplicación Inventor desde su aplicación Inventor

Puede iniciar otra aplicación que se creó con App Inventor si conoce el nombre de su paquete y el nombre de la clase. Si tiene el código fuente de la
aplicación, puede encontrar estos nombres de la siguiente manera:

1. Descargue el código fuente a su computadora.


2. Usando un explorador de archivos o una utilidad de descompresión, encuentra el archivo youngandroidproject/project.properties
3. La primera línea comenzará con " main=". Todo después de eso es el paquete y el nombre de la clase.
Por ejemplo, aquí hay una primera línea que puede ver para una aplicación llamada HelloPurr .:
main=appinventor.ai_HomerSimpson.HelloPurr
La HomerSimpsonparte del nombre proviene de la cuenta de usuario de App Inventor.
Para iniciar esta aplicación, usaría un componente de inicio de actividad con estas propiedades:
ActivityPackage: appinventor.ai_HomerSimpson.HelloPurr
ActivityClass: appinventor.ai_HomerSimpson.HelloPurr.Screen1
Al invocar el StartActivitymétodo de inicio de actividad se iniciará HelloPurr. Cuando HelloPurr termine (si lo hace), ActivityStarter.AfterActivityse
invocará el método de la aplicación original .
Nota: Si va a iniciar otra aplicación de App Inventor, asegúrese de usar el nombre del paquete correcto. Por ejemplo, si alguien publica el código fuente
(archivo zip) para una aplicación, y usted vuelve a empaquetar esa aplicación, terminará con un nombre de paquete diferente al que él tenía. En caso de
duda, o si no tiene el código fuente, inicie la actividad a mano en el teléfono y ejecute "adb logcat" para ver el registro del sistema Android y ver lo que
realmente se inició, como se explica a continuación en "Determinación cómo configurar las propiedades ".
Nota: Si va a iniciar una segunda aplicación de App Inventor que usted mismo está escribiendo, generalmente es más fácil y más conveniente diseñar todo
como una aplicación de pantalla múltiple única, en lugar de crear dos aplicaciones separadas. Consulte la sección a continuación en "Inicio de actividad
frente a aplicaciones de pantalla múltiple".
Iniciar una aplicación de teléfono incorporado desde su aplicación Inventor App

Las aplicaciones que vienen con el teléfono pueden invocarse usando nombres de paquetes y nombres de clase, como se muestra arriba. Las aplicaciones
de Android también pueden lanzar respuestas a una intención, que es la forma en que el sistema operativo Android de especificar algo para hacer sin
designar necesariamente una aplicación en particular. Puede encontrar información sobre intentos (escritos para desarrolladores avanzados) en
la documentación del sistema Android .
Algunas aplicaciones están diseñadas para tomar información adicional cuando se inician. Por ejemplo, los mapas pueden tomar información geográfica que
especifica qué mapa mostrar. Otro ejemplo es lanzar una búsqueda en la Web con información adicional que especifica el texto a buscar. Debe consultar la
documentación de la aplicación en particular para saber qué es esta información adicional y cómo especificarla. En general, usted especifica la información
configurando las propiedades del iniciador de actividad justo antes de que se inicie la otra aplicación.
Aquí hay unos ejemplos:
Iniciar la camara
Para iniciar la aplicación de la cámara Android, use un inicio de actividad con estas propiedades:
Action: android.intent.action.MAIN
ActivityPackage: com.google.android.camera
ActivityClass: com.android.camera.Camera
Esto es más o menos lo que hace el componente de App Inventor Camera, aunque es mucho más conveniente utilizar el componente de Camera.
Iniciar una búsqueda web
Para iniciar una búsqueda web para una consulta en particular, como "Homer Simpson", use un iniciador de actividad con estas propiedades:
Action: android.intent.action.WEB_SEARCH
ExtraKey: query
ExtraValue: Homer Simpson
ActivityPackage: com.google.android.providers.enhancedgooglesearch
ActivityClass: com.google.android.providers.enhancedgooglesearch.Launcher
Abra el navegador a una página web
Utilice estas propiedades de inicio de actividad para abrir una página web específica:
Action: android.intent.action.VIEW
DataUri: http://news.google.com
Iniciar el correo con mensaje pre-direccionado
Para iniciar la aplicación de correo de Android, use la acción android.intent.action.VIEW. Puede usar la DataUripropiedad del iniciador de actividad para
especificar el destinatario, el asunto y el cuerpo del mensaje. En cada caso, al iniciar la actividad aparecerá la aplicación de correo de Android, y puede
completar el mensaje y luego presionar "Enviar".
Por ejemplo, si especifica:
Action: android.intent.action.VIEW
DataUri: mailto:santa@northpole.com
luego, al iniciar la actividad, aparecerá el remitente, con el destinatario archivado.
Si especifica:
Action: android.intent.action.VIEW
DataUri: mailto:santa@northpole.com?subject=Please Santa&body=Bring me a pony
luego, al iniciar la actividad aparecerá el remitente, con el destinatario, el asunto y el cuerpo completado. Puede usar el remitente para editarlos antes de
enviar el mensaje, si lo prefiere.
El DataURI aquí debe ser un mensaje codificado en la URL diseñado para funcionar con el servicio de correo electrónico de Internet. Busque en la Web para
encontrar la documentación y las herramientas adecuadas para crearlos, por ejemplo, Elementos de un Mailto: URL
Mostrar un mapa para una ubicación
Si conoce la latitud y la longitud de una ubicación, puede mostrar un mapa usando un inicio de actividad con estas propiedades para mostrar un mapa del
área:
Action: android.intent.action.VIEW
DataUri: geo:37.8,-122.23?z=23
El formato de DataURI es específico de la aplicación. En este ejemplo, el URI especifica un az (zoom) de 23, que es el mayor valor de zoom. El valor del
zoom es opcional y oscila entre 1 (toda la Tierra) y 23.
Si conoce el código postal, puede configurar las propiedades de inicio de la actividad de la siguiente manera:
Action: android.intent.action.VIEW
DataUri: geo:0,0&q=94043
Si tiene una dirección física, puede usar un DataUri que codifica la dirección con un esquema llamado codificación de URL :
Action: android.intent.action.VIEW
DataUri: geo:0,0&q=5000% 20MacArthurBlvd%20Oakland%2CCA
Generalmente, en la codificación URI, los únicos caracteres que debe reemplazar son espacios (% 20) y signos de puntuación, como comas (% 2C) y puntos
(% 2E).
Reproducir un video de YouTube
Necesitará conocer la URI del video de YouTube. A continuación, establezca las propiedades de inicio de la actividad como
Action: android.intent.action.VIEW
ActivityPackage: com.google.android.youtube
ActivityClass: com.google.android.youtube.PlayerActivity
y establezca el URI de datos en el URI del video que se reproducirá, por ejemplo:
DataUri: http://www.youtube.com/watch?v=8ADwPLSFeY8
Averiguar cómo establecer las propiedades
Si no puede encontrar la documentación de las actividades que desea iniciar, una forma de averiguar cómo configurar las propiedades es iniciar la actividad
manualmente y ver lo que aparece en el registro del sistema Android. Por ejemplo, si usa YouTube para reproducir un video, verá en el registro:
I/ActivityManager( 86): Starting activity: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE]
dat=http://www.youtube.com/watch?v=8ADwPLSFeY8 flg=0x3800000 cmp=com.google.android.youtube/.PlayerActivity }
Si puede encontrar la cadena "cmp =", entonces el ActivityPackage es la parte antes de la barra diagonal, y ActivityClass es la parte completa de "cmp =", sin
el carácter de barra diagonal. Como en el ejemplo de YouTube, también puede haber información "dat =" que puede especificarse con la propiedad DataUri.
Iniciar aplicaciones arbitrarias

Puede utilizar Activity Starter para iniciar cualquier actividad si conoce el nombre del paquete y el nombre de la clase, o la intención apropiada. Algunos
desarrolladores documentan estos intentos en beneficio de otros desarrolladores de Android. Para obtener sugerencias sobre cómo iniciar otras aplicaciones
con intenciones, consulte la documentación de la API de Android o busque en los foros de desarrolladores de Android.
Si tiene una aplicación en su teléfono y no tiene el código fuente, es posible que aún pueda averiguar el nombre del paquete y el nombre de la clase (y, a
veces, la intención) lanzando la aplicación e inspeccionando el registro del sistema Android, como se indica encima.
Recibiendo resultados de aplicaciones que comienzas

Algunas aplicaciones están construidas para devolver un resultado. Puede ver ese resultado como el argumento de resultado del AfterActivityevento de
inicio de actividad . Actualmente, App Inventor solo puede recibir resultados de texto.
Devolver resultados de las aplicaciones de App Inventor y obtener el resultado
Puede crear aplicaciones de App Inventor que devuelvan un resultado (de texto) a sus llamadores, para que puedan usarse como subrutinas. Para devolver
un resultado, invoque el comando close screen with plain text(ubicado en el cajón de Control). Su aplicación de subrutina terminará, y el argumento
de close screen with plain textestará disponible para la aplicación que la llamó. Si la aplicación de llamada era en sí misma una aplicación de App
Inventor que usaba un iniciador de actividad, verá ese texto como el argumento para el AfterActivityevento del iniciador de actividad .
En más detalle, suponga que hay dos aplicaciones de App Inventor: una SubroutineAppdiseñada para iniciarse con un iniciador de actividad y devolver un
valor, y una CallerAppque utiliza un ActivityStarter para llamar SubroutineApp. Para devolver el resultado, se SubroutineAppejecuta close screen with plain
text, dándole como argumento el resultado (solo texto) que debe devolverse al llamante.
En el lado de la persona que llama, CallerAppconfigura su Activity Starter con el nombre del paquete y el nombre de clase correctos para
comenzar SubroutineApp. También debe establecer la ActivityStarter.ResultNamepropiedad a la cadena de texto
especial APP_INVENTOR_RESULT. Entonces CallerAppcomienza la SubroutineAppactividad. Cuando finaliza la subrutina, el AfterActivityevento Activador de
actividad se activa y el resultado que se devolvió SubroutineAppestará disponible como resultargumento para AfterActivity. Esa misma información está
disponible como Resultpropiedad del ActivityStarter .
Llamando a App Inventor Apps y pasándoles valores.
Si está escribiendo un App Inventor CallerApppara llamar a un App Inventor SubroutineApp, puede pasar un valor de texto a SubroutineApp. Para hacer esto,
use un Activity Starter CallerAppcon la propiedad ExtraKey para establecer la etiqueta especial APP_INVENTOR_STARTy la propiedad ExtraValue con el texto
que desea pasar. El SubroutineApppuede recuperar ese valor utilizando el get start plain textbloque del cajón de control.
Al pasar y devolver resultados, puede combinar varias aplicaciones de App Inventor, tanto las que escribe como las que comparte con otros.
Devolviendo resultados de aplicaciones arbitrarias
Recuperar valores de otras aplicaciones es como recuperar valores de las aplicaciones de App Inventor. En general, en Android, una actividad devolverá un
resultado que se designa con un nombre, donde el resultado se designa con un nombre, donde el nombre se especifica con la ResultNamepropiedad
de Activity Starter . El nombre que se utilizará para las aplicaciones de App Inventor es APP_INVENTOR_RESULT, como se describe anteriormente. Otras
aplicaciones, no creadas con App Inventor, usarán otros nombres, y necesitará saber esos nombres para obtener los valores de esas aplicaciones. En
general, deberá consultar la documentación sobre la aplicación que desea utilizar como subrutina. Algunos desarrolladores proporcionan esta información o,
a veces, tendrá acceso al código fuente.
No todas las aplicaciones de Android utilizan el mecanismo Resulty ResultName. Por ejemplo, algunas aplicaciones devuelven información a través de las
propiedades ResultTypey ResultUri. Una vez más, deberá tener información del desarrollador de la aplicación para saber cuál de estos usar.
Para desarrolladores avanzados: más específicamente (con referencia a la documentación del desarrollador de Android) una aplicación puede diseñarse
para devolver un intento . El iniciador de actividad utiliza el especificado ResultNamepara acceder intent.getStringExtra(resultName)para producir el
resultado. Los valores para ResultTypey ResultUriprovienen de intent.getType()y intent.getType().
Ejemplo: recogiendo archivos de la tarjeta SD
Aquí hay un ejemplo que ilustra el uso de una aplicación de terceros:
AndExplorer de Lysesoft es una aplicación que te permite elegir archivos para tu tarjeta SD. Puede llamar a AndExplorer con un iniciador de actividades para
agregar una capacidad de selección de archivos a su aplicación. Deberá tener instalado AndExplorer en su teléfono. Puedes conseguirlo desde el Android
Market.
Para iniciar AndExplorer para elegir un archivo, use un ActivityStarter con:
Action: android.intent.action.PICK
dataType: vnd.android.cursor.dir/lysesoft.andexplorer.file
dataURI: file:///sdcard
Cuando inicie la actividad y elija un archivo, el nombre del archivo resultante estará disponible como ResultUri. Además, ResultTypele dará el tipo de
archivo, por ejemplo, imagen / jpeg o audio / mpeg. Usando esto, puede escribir una aplicación que le permita elegir un archivo de la tarjeta SD y mostrar la
imagen o reproducir la pista de música según corresponda.
¿La aplicación está disponible?
Si su aplicación llama a otras aplicaciones como actividades, querrá verificar que esas otras aplicaciones estén disponibles en el teléfono de su usuario antes
de intentar iniciarlas. Puede verificar esto utilizando el método Activity Starter ResolveActivity, que devuelve el nombre de la actividad que se iniciaría, dado
el paquete o la información de intención que ha proporcionado. Si este nombre está en blanco, la aplicación requerida no está presente y puede avisar a su
usuario.
Usar el Activity Starter en lugar de usar múltiples pantallas
Las secciones anteriores explican cómo puede crear una aplicación de App Inventor que llame a otra aplicación de App Inventor, tal vez con el paso y la
devolución de valores de texto. Si va a escribir ambas aplicaciones, probablemente sea mejor crear una sola aplicación multipantalla en lugar de crear dos
aplicaciones y usar el Activity Starter. Esto simplificará las cosas para sus usuarios, ya que necesitarán instalar solo una aplicación en su
dispositivo. Además, con las aplicaciones de pantalla múltiple, puede pasar y devolver listas como valores en lugar de solo texto, y puede compartir valores
entre las pantallas con TinyDB. Consulte la documentación en aplicaciones de pantalla múltiple para más detalles.
Nota sobre la actualización de aplicaciones antiguas:
Los comandos de inicio de actividad descritos aquí han cambiado desde versiones anteriores, que utilizaron close screen with resulty get start text, en
lugar de las más recientes close screen with plain texty get start plain text. Si carga la fuente de una aplicación anterior a 2012 y la versión 66, App
Inventor marcará los bloques antiguos y le solicitará que los reemplace con las nuevas versiones.
<< Volver a la página principal de conceptos de AI2
Dropdowns (App Inventor 2)
¿Qué es un menú desplegable?
Algunos bloques en App Inventor se denominan menús desplegables. Lo que esto significa es que estos bloques se pueden cambiar para significar o hacer
otra cosa simplemente haciendo clic en el nombre del bloque.
Algunos bloques en App Inventor tienen una pequeña flecha orientada hacia abajo directamente a la derecha del nombre del bloque. Esta flecha indica que
el bloque es un menú desplegable. Cuando haga clic en el nombre del bloque, aparecerá un menú desplegable con opciones de diferentes bloques a los que
su bloque puede cambiar. Vea la figura de abajo para un ejemplo.
¿Cuáles son ejemplos de menús desplegables?
Muchos de los bloques en App Inventor son desplegables. Los más notables incluyen varios bloques matemáticos diferentes, obtener y configurar, y obtener
/ configurar las propiedades de los componentes.
Si alguna vez no puede ver un bloque que necesita en el cajón, podría ser porque es un menú desplegable de un bloque diferente. Intenta escribirlo en la
pantalla para ver si puedes encontrarlo. Es importante saber que los menús desplegables eliminan muchos de los bloques del cajón, pero aún están
disponibles en App Inventor.

¿Por qué son útiles los menús desplegables?


Puede haber un caso en el que necesite hacer el mismo conjunto de bloques una y otra vez con una pequeña diferencia. Para hacerlo más fácil, solo puede
copiar y pegar los bloques y hacer un cambio menor en uno de ellos usando un menú desplegable.

Accediendo a Imágenes y Sonidos (App Inventor 2)


Accediendo a imágenes y sonidos en la App Inventor 2.
Las aplicaciones creadas con App Inventor pueden acceder a fuentes de sonido, imagen y video desde tres tipos diferentes de ubicaciones:
Activos de aplicación
Las fuentes etiquetadas como Medios mostradas en el diseñador, parte de los activos de la aplicación, se empaquetan con la aplicación. Cualquiera que
instale su aplicación los tendrá, como parte de la aplicación. También los especificas en el diseñador, lo cual es conveniente. También puede especificarlos
en los programas por su nombre de archivo: simplemente use el nombre del archivo sin ningún prefijo especial. Por ejemplo, si tiene un recurso de imagen
llamado kitty.png , puede usarlo como imagen: simplemente configure la propiedad de Imagen de un componente de imagen en el texto kitty.png . De
manera similar, puede usar los nombres de archivos para sonido (Sonido o Reproductor) o video (VideoPlayer).
Los activos son los más convenientes de usar, pero el espacio para ellos está limitado a unos pocos megabytes, ya que deben estar empaquetados con la
aplicación. Son buenos para imágenes pequeñas y selecciones de audio cortas. Es probable que no los uses para canciones o videos completos.
La tarjeta SD del teléfono
Puede acceder a los archivos en la tarjeta SD (digital segura) de su teléfono usando nombres que comienzan con / sdcard. Puede reproducir una canción en
su tarjeta SDCard configurando la fuente de un componente del reproductor para
/ sdcard / Música / Blondie / Lo mejor de Blondie / Heart of Glass.mp3
e iniciar el reproductor (asumiendo, por supuesto, que el archivo de la canción está en la tarjeta SD). Asegúrese de especificar el nombre completo del
archivo, incluido el "mp3".
El sistema Android también incluye una forma alternativa de diseñar archivos SDCard como URL. Aquí prefieres el nombre del archivo con el archivo: ///
sdcard y usas "codificación de URL" para caracteres especiales. Por ejemplo, un espacio es "% 20". Así que puedes designar el mismo archivo
configurando la fuente del reproductor en
file: ///sdcard/Music/Blondie/The%20Best%20of%20Blondie/Heart%20of%20Glass.mp3
Tenga en cuenta que querrá usar un componente Player para esto, no Sound . Una canción completa como esta es demasiado grande para que el sonido
lamaneje.
Imágenes y videos pueden ser designados de manera similar.
App Inventor no incluye (todavía) ninguna forma de almacenar archivos en la tarjeta SD. Tampoco incluye (todavía) una forma de enumerar los archivos en la
tarjeta SD. Tendrás que usar otras aplicaciones o el administrador de archivos del teléfono Android para eso.
Usar la tarjeta SD proporciona mucho más espacio para los medios que tratar de empaquetar cosas como activos. El inconveniente es que los usuarios no
los obtendrán automáticamente instalando su aplicación.
URLs y la web
Puede acceder a los archivos en la Web usando URL, comenzando con http: // , por ejemplo, configurando la propiedad de imagen de una imagen para
http://www.google.com/images/srpr/nav_logo14.png
y lo mismo para la música y los videos. Asegúrese de usar el enlace que apunta al archivo real, no a los reproductores de los archivos, que es mucho más
común en la Web, especialmente para música y videos.
Otras URL de contenido
El sistema Android también utiliza direcciones URL para acceder a varios lugares donde los medios están almacenados en el teléfono. Por ejemplo, se puede
acceder a las imágenes en la galería de fotos con los nombres de archivo que comienzan con el contenido: // media / external / images / media ,
como puede ver al usar ImagePicker y examinar la ruta de la imagen resultante.
<< Volver a la página principal de conceptos de AI2
App Inventor consejos y trucos
 Haciendo comentarios
Agregue una nota a los bloques en su código para que usted y otros sepan lo que estaba haciendo. Los comentarios se pueden agregar haciendo clic
derecho en un bloque y seleccionando la opción Agregar un comentario. Su comentario ahora se guardará y se puede acceder haciendo clic en el signo de
interrogación en la parte superior derecha del bloque.
 Bloques de condensación
Haga clic en un botón en un grupo de bloques para condensarlos y permitirle tener más espacio disponible en su pantalla. El condensado se puede hacer
haciendo clic derecho y seleccionando la opción Contraer bloques.
 Bloqueo de tipo
¿Sabes el nombre del bloque que necesitas? Haga clic en la pantalla y comience a escribir su nombre. Esto debería hacer que aparezca una lista de bloques
con los títulos correspondientes a la palabra escrita. Para obtener más ayuda sobre este truco, echa un vistazo a la página de bloqueo de tipos .
 Eliminación rápida
En lugar de arrastrar su bloque o bloques a la papelera en la esquina inferior izquierda, simplemente selecciónelos haciendo clic con el mouse y presione la
tecla eliminar.
 Copiar y pegar
Si hay ciertos bloques que necesitarás nuevamente, solo copia y pega los bloques.

You might also like