SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Ejercicio 02
En este ejercicio vamos a tener nuestro propio lienzo de dibujo, podremos
dibujar líneas de colores, cambiar los grosores de las líneas e incluso hacer fotografías
para dibujar sobre ellas.

1. Utilizar los componentes “Canvas” y “Horizontal arrangement”.
2. Controlar los eventos relacionados con las pantallas táctiles.
3. Trabajar con variables.

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

Como objetivos del ejercicio tenemos:

Gabino González Vega

Página 1
Ejercicio 02

Ejercicio PASO A PASO.

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

1. Abrimos APP INVENTOR
2. En la página de la aplicación clicamos sobre el botón

3. Accedemos con nuestra cuenta de gmail
4. App Inventor arranca con la última aplicación en la que estuvimos trabajando,
para iniciar un nuevo proyecto debemos ir a Projects  Start new project

Gabino González Vega

Página 2
Ejercicio 02

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

5. Le ponemos nombre al proyecto, recordando que APP INVENTOR no permite ni
espacios ni caracteres especiales.

6. Botones de Color
a. Lo primero que vamos a colocar son tres
botones que nos permitirán escoger el color
con el que vamos a dibujar. Esto botones
estarán en la parte superior y uno al lado del
otro, para que esto sea posible necesitamos un
Layout, estos son los que nos permiten agrupar
elementos
en
horizontal
(HorizontalArrangement),
vertical
(VerticalArrangement) o en forma de tabla
(TableArrangement).
Para ello iremos en la columna Palette a la
sección Layout y arrastraremos un HorizontalArrangement hasta el
Viewer

b. Una vez situado el HorizontalArrangement
debemos introducir en él un botón, si recordamos
el botón lo podemos encontrar en User Interface
Repetimos dos veces más la operación hasta
tener dentro del organizador horizontal tres
botones.
La apariencia de los tres botones dentro del
Layout sería:

Gabino González Vega

Página 3
http://tecnoloxias.webnode.es/

Ejercicio 02
c. Para comprobar que los botones están bien situados
dentro del Layout debemos ir a la columna
Components, en ella aparecerá el componente Screen1
(es la pantalla de trabajo), debajo y un poco hacia la
derecha el componente HorizontalArrangement1 y
dentro de él los tres botones, tal y como muestra la
figura.

d. Debemos cambiar el nombre de los botones para
poderlos diferenciar en el código, para ello,
seleccionamos el botón en la columna Components y
clicando sobre el botón Rename les cambiamos uno a
uno el nombre de los botones por BotonRojo,
BotonVerde, BotonAzul

www.chapoyeo.blogspot.com

e. Hay que cambiar la apariencia del botón, para ello,
seleccionando botón a botón vamos a cambiar en la
columna Properties las propiedades de color de fondo
(BackgroundColor), negrita (FontBold), tamaño de
fuente (FontSize), forma (Shape), texto (Text) y color
de texto (TextColor) para que cada botón haga
referencia al color que tiene asignado.

Gabino González Vega

Página 4
www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

Ejercicio 02

f. Como lo que queremos es que los botones aparezcan en
la parte superior y centrados en pantalla debemos ir a las
propiedades del HorizontalArrangement1, para ello es
necesario seleccionarlo en la columna Components y
luego en la columna Propierties cambiar los valores de
Width (ancho) a Fill parent… y de Align Horizontal
(alineación horizontal) a Center, tal y como muestra la
figura.
g. El resultado final debe parecerse a:

7. Crear el lienzo.
a. El elemento Canvas que encontraremos en
Palette  Drawing and Animation es el que
nos permitirá dibujar sobre las imágenes.
Lo seleccionamos y los arrastramos hacia la
columna Viewer.
b. En la columna Components le cambiamos el
nombre por Lienzo, para ello repetiremos la
misma operación que con los botones.

Gabino González Vega

Página 5
http://tecnoloxias.webnode.es/

Ejercicio 02

c. Con el Lienzo seleccionado iremos a la columna
Propierties y le cambiaremos sus propiedades de tal
manera que el ancho sea el de la pantalla (Width a
Fill Parent…), el alto se lo vamos a dar de 300
pixeles (Height a 300) y lo cargaremos con una
imagen, para ello cambiaremos la propiedad
Backgroundimage y subiremos una imagen.

8. Programar.

www.chapoyeo.blogspot.com

Con los elementos que tenemos en pantalla estamos listos para
poder dibujar sobre la imagen y cambiar el color de las líneas.
a. Encima de la columna Propierties nos aparece el botón
Blocks, clicamos sobre él y nos aparecerá la pantalla de
programación.
b. Lo primero que vamos a programar es que se dibuje un punto en la
imagen justo donde posamos el dedo, para ello clicamos sobre el
elemento Lienzo y buscamos when lienzo.Touched do, este es el
evento que marca cuando tocamos el lienzo.

Gabino González Vega

Página 6
Ejercicio 02

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

c. Este evento tiene tres atributos:
i. X= nos da la posición X donde posamos el dedo.
ii. Y= nos da la posición Y donde posamos el dedo.
iii. toucheSprite (lo veremos en próximo ejercicios)
d. Lo que pretendemos es dibujar en ese punto un círculo, para ello
volvemos a clicar sobre Lienzo y buscamos la rutina Call
Lienzo.DrawCircle y la colocamos dentro del evento. Esta rutina. nos
pide las coordenadas del centro del círculo (X e Y) y el radio
Para el centro (coordenadas X
e Y) vamos a seleccionar la X e
Y del evento, debemos clicar
sobre la X y tomar la
propiedad get X (toma el valor
de X) y la colocamos en la X
del DrawCircle, repetimos
operación para la Y, al final
nos quedará

e. El valor del radio r, es un
número que tomamos de la
columna Blocks, en la sección
Built-in, clicamos sobre Math
y seleccionamos la primera
opción, esta la arrastramos
hasta el atributo r de
drawCircle y cambiamos el
valor 0 por el valor 5

Gabino González Vega

Página 7
Ejercicio 02

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

f. Ya hemos conseguido dibujar un círculo allí donde clicamos, pero si lo
que queremos en dibujar una línea por donde pasamos el dedo
debemos ir al Lienzo y allí buscar la opción When Lienzo.Dragged

Esta opción tiene varios atributos:
 startX e startY, nos dan la coordenada X e Y del lugar donde
iniciamos el arrastre
 en el cado de prevX y prevY la coordenada que nos devuelve es
la del punto justamente anterior al actual
 por el contrario currentX y currentY nos dan el punto actual
Como lo que queremos dibujar es una línea debemos buscar en Lienzo
el procedimiento Call Lienzo.DrawLine, este nos pide 4 atributos que
son las dos coordenadas del primer punto y las dos del último. A x2 e y2
debemos asignarle las coordenadas actuales del dedo (currentX y
currentY) dependiendo de los valores que asignemos a x1 e y1 el
resultado varía:




Si asignamos startX e startY nos dibujara una línea recta perfecta
con inicio en el punto en que apoyamos el dedo y fin el punto
donde lo levantamos.
Si asignamos prevX e prevY dibuja una línea que sigue
perfectamente la trayectoria del dedo sobre la pantalla.

g. Nos queda por programar los botones de color, para ello debemos ir a
BotonVerde y seleccionar When BotonVerde.click, como lo que
queremos cambiar es el color de la línea sobre el lienzo, debemos clicar
sobre Lienzo y buscar Set Lienzo.PaintColor to, para cargar el color
debemos clicar en la columna de la izquierda Built-In sobre Colors y allí
seleccionar el color verde. El resultado será:

Gabino González Vega

Página 8
h. Repitiendo las mismas operaciones para el color azul y el rojo.
9. Mejorar la aplicación.
Vamos a añadir funcionalidad a la aplicación para conseguir variar el ancho de
la línea de dibujo, poder borrar todo e incluso poder trabajar sobre una foto
que hagamos nosotros.
a. Clicamos sobre el botón Designer situado en la
parte superior derecha de la pantalla.
b. Ahora añadiremos debajo del lienzo un HorizontalArrangement y
dentro colocar 4 botones que llamaremos BotonFoto, BotonBorrar,
BotonGrueso y BotonFino. El resultado final debe ser parecido al de la
figura:

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

Ejercicio 02

Gabino González Vega

Página 9
Ejercicio 02

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

c. Como ahora queremos hacer una foto con la cámara del
teléfono debemos añadir el componente Camera que se
encuentra en la columna Palette, en la sección Media
d. El objeto Camera se incluye como elemento no visible, al
terminar de incluir todos los elementos la apariencia de la
pantalla debe ser similar a la que sigue:

e. Ahora debemos programar la acción de cada botón, para
ello debemos clicar sobre el botón Blocks
f. BotonFoto:
Con este botón pretendemos poder tomar una foto y cargarla en la
aplicación como foto sobre la que dibujar. Para ello lo primero es hacer
la foto, así que debemos ir en la columna Blocks, clicar sobre BotonFoto
y seleccionar When BotonFoto.click, dentro debemos indicarle que
queremos hacer una foto para ello debemos ir a Camera1 y buscar el
procedimiento Call Camera1.TakePicture.
Hasta aquí está el código necesario para hacer una foto, ahora debemos
indicarle a la aplicación que la cargue como imagen de trabajo, para ello
debemos clicar sobre Camera1 y buscar When Camera1.AfterPicture y
dentro debemos colocar Set Lienzo.BackgroundImage to, que nos
permite cambiar la imagen de fondo de Lienzo, imagen que debemos

Gabino González Vega

Página 10
Ejercicio 02

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

cargar con la foto que acabamos de realizar, por lo que debemos cargar
la variable Image del procedimiento AfterPicture.

g. BotonBorrar.
Con este botón pretendemos borrar todas las
líneas dibujadas sobre el lienzo, así que, clicamos
sobre
BotonBorrar,
buscamos
When
BotonBorrar.Click.
Dentro debemos colocar Call Lienzo.Clear que encontraremos al clicar
sobre Lienzo.
h. BotonGrueso y BotonFino.
Con
estos
botones
pretendemos cambiar el
ancho de la línea, por un
ancho más grueso o por un
ancho más fino, es decir, el
ancho de línea será variable,
por lo que lo tendremos que
definir como una variable.
Para ello, en la columna
Blocks buscamos al sección
Variables,
clicamos
y
buscamos
la
opción
Initialize global name to, clicamos sobre name y cambiamos el nombre
de la variable por Grosor. Solo queda cargar la variable con un valor,
para ello vamos a Math e incluimos el valor sobre la variable.

Ahora vemos cambiar el valor de r por la variable, para ello eliminamos
el valor dado (3) y clicamos en Variables seleccionando Get, lo
colocamos sobre el atributo r de When Lienzo.Touched que ya estaba

Gabino González Vega

Página 11
Ejercicio 02

Ahora debemos programar el valor de los botones, clicamos sobre
BotonGrueso y seleccionamos When BotonGrueso.click, ahora clicamos
sobre Variables y tomamos Set …. to, en la parte más clara clicamos y
seleccionamos global grosor, sólo queda darle el valor matemático de
10. Ahora debemos indicar que ha variado el grosor de la línea, para ello
clicamos sobre Lienzo, buscamos Set Lienzo.LineWidth to, clicamos
sobre Variables y seleccionamos get, en la parte más clara clicamos y
seleccionamos global grosor.
Repetimos las operaciones para el BotonFino, cambiando el valor 10
por 3. Al final debe quedarnos como en la imagen.

www.chapoyeo.blogspot.com

http://tecnoloxias.webnode.es/

programado. Ahora clicamos sobre la parte más clara de Get y
seleccionamos global grosor. Debe quedar de la siguiente manera:

Gabino González Vega

Página 12

Más contenido relacionado

La actualidad más candente

3ra unidad corel draw
3ra unidad corel draw3ra unidad corel draw
3ra unidad corel draw
Javier Avalos
 
Guia de temas adobe photoshop cs5
Guia de temas adobe photoshop cs5Guia de temas adobe photoshop cs5
Guia de temas adobe photoshop cs5
corazon de maria
 

La actualidad más candente (20)

Unidad didactica scratch
Unidad didactica scratchUnidad didactica scratch
Unidad didactica scratch
 
Ejercicio guiado de Inkscape
Ejercicio guiado de InkscapeEjercicio guiado de Inkscape
Ejercicio guiado de Inkscape
 
Clase 22 animaciones y transiciones en power point 2010
Clase 22 animaciones y transiciones en power point 2010Clase 22 animaciones y transiciones en power point 2010
Clase 22 animaciones y transiciones en power point 2010
 
Praticas mblock
Praticas mblockPraticas mblock
Praticas mblock
 
CodeyRocky
CodeyRockyCodeyRocky
CodeyRocky
 
EXAMEN KODU GAME LAB -1
EXAMEN KODU GAME LAB -1EXAMEN KODU GAME LAB -1
EXAMEN KODU GAME LAB -1
 
Ejercicios Corel Draw basico
Ejercicios Corel Draw basicoEjercicios Corel Draw basico
Ejercicios Corel Draw basico
 
Ruiz camacho, eduardo manual completo
Ruiz camacho, eduardo manual completoRuiz camacho, eduardo manual completo
Ruiz camacho, eduardo manual completo
 
Ejercicios practicos con Kdenlive 2018
Ejercicios practicos con Kdenlive 2018Ejercicios practicos con Kdenlive 2018
Ejercicios practicos con Kdenlive 2018
 
Photoshop CS6: Ejercicios
Photoshop CS6: EjerciciosPhotoshop CS6: Ejercicios
Photoshop CS6: Ejercicios
 
3ra unidad corel draw
3ra unidad corel draw3ra unidad corel draw
3ra unidad corel draw
 
Manual de premier
Manual de premier Manual de premier
Manual de premier
 
Photoshop CS parte 2 ejercicios 161114114114
Photoshop CS parte 2 ejercicios 161114114114Photoshop CS parte 2 ejercicios 161114114114
Photoshop CS parte 2 ejercicios 161114114114
 
Guia de temas adobe photoshop cs5
Guia de temas adobe photoshop cs5Guia de temas adobe photoshop cs5
Guia de temas adobe photoshop cs5
 
MASCARAS EN PHOTOSHOP
MASCARAS EN PHOTOSHOPMASCARAS EN PHOTOSHOP
MASCARAS EN PHOTOSHOP
 
Tux paint
Tux paintTux paint
Tux paint
 
Flash ejercicios
Flash ejerciciosFlash ejercicios
Flash ejercicios
 
Programacion introductoria con_scratch.ppt
Programacion introductoria con_scratch.pptProgramacion introductoria con_scratch.ppt
Programacion introductoria con_scratch.ppt
 
Photoshop
PhotoshopPhotoshop
Photoshop
 
Manual kodu
Manual koduManual kodu
Manual kodu
 

Destacado

Walt whitman
Walt whitman  Walt whitman
Walt whitman
xancletah
 

Destacado (20)

Uso y manejo de DFD - Una aproximación
Uso y manejo de DFD - Una aproximaciónUso y manejo de DFD - Una aproximación
Uso y manejo de DFD - Una aproximación
 
Aplicacion sencilla en AppInventor
Aplicacion sencilla en AppInventorAplicacion sencilla en AppInventor
Aplicacion sencilla en AppInventor
 
Programamos con App Inventor 5: BallBounce (juego paso a paso)
Programamos con App Inventor 5: BallBounce (juego paso a paso)Programamos con App Inventor 5: BallBounce (juego paso a paso)
Programamos con App Inventor 5: BallBounce (juego paso a paso)
 
Programamos con App Inventor 3: Mi primera App (III)
Programamos con App Inventor 3: Mi primera App (III)Programamos con App Inventor 3: Mi primera App (III)
Programamos con App Inventor 3: Mi primera App (III)
 
App inventor primeros pasos i
App inventor   primeros pasos iApp inventor   primeros pasos i
App inventor primeros pasos i
 
Programamos con App Inventor 2: Mi primera App (I)
Programamos con App Inventor 2: Mi primera App (I)Programamos con App Inventor 2: Mi primera App (I)
Programamos con App Inventor 2: Mi primera App (I)
 
Programamos con App Inventor 3: Mi primera App (II)
Programamos con App Inventor 3: Mi primera App (II)Programamos con App Inventor 3: Mi primera App (II)
Programamos con App Inventor 3: Mi primera App (II)
 
Evolucion del Software
Evolucion del SoftwareEvolucion del Software
Evolucion del Software
 
Primera aplicación con app inventor para android
Primera aplicación con app inventor para androidPrimera aplicación con app inventor para android
Primera aplicación con app inventor para android
 
Introducción a App Inventor
Introducción a App InventorIntroducción a App Inventor
Introducción a App Inventor
 
Tutorial mit app inventor 2
Tutorial mit app inventor 2Tutorial mit app inventor 2
Tutorial mit app inventor 2
 
Unidad 8
Unidad 8Unidad 8
Unidad 8
 
App inventor
App inventorApp inventor
App inventor
 
2 snap - mi primer proyecto
2  snap - mi primer proyecto2  snap - mi primer proyecto
2 snap - mi primer proyecto
 
Concurso sgapeio 3
Concurso sgapeio 3Concurso sgapeio 3
Concurso sgapeio 3
 
Whitman, Walt
Whitman, Walt Whitman, Walt
Whitman, Walt
 
Walt whitman
Walt whitman  Walt whitman
Walt whitman
 
(Progress Presentation) Autonomous Quadcopter Navigation
(Progress Presentation) Autonomous Quadcopter Navigation(Progress Presentation) Autonomous Quadcopter Navigation
(Progress Presentation) Autonomous Quadcopter Navigation
 
Svp - Aplicaciones AppInventor 2013
Svp - Aplicaciones AppInventor 2013Svp - Aplicaciones AppInventor 2013
Svp - Aplicaciones AppInventor 2013
 
AppInventor
AppInventorAppInventor
AppInventor
 

Similar a App Inventor: Ejercicio 2 (20)

Unidad 2 manipular el dibujo utilizando herramientas de diseño
Unidad 2 manipular el dibujo utilizando herramientas de diseñoUnidad 2 manipular el dibujo utilizando herramientas de diseño
Unidad 2 manipular el dibujo utilizando herramientas de diseño
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Para subir hoy
Para subir hoyPara subir hoy
Para subir hoy
 
Unidad 2 manipular el dibujo utilizando herramientas de diseño (1)
Unidad 2 manipular el dibujo utilizando herramientas de diseño (1)Unidad 2 manipular el dibujo utilizando herramientas de diseño (1)
Unidad 2 manipular el dibujo utilizando herramientas de diseño (1)
 
Flash 1
Flash 1Flash 1
Flash 1
 
Botones pulsantes
Botones pulsantesBotones pulsantes
Botones pulsantes
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2 manipular el dibujo utilizando herramientas de diseño
Unidad 2 manipular el dibujo utilizando herramientas de diseñoUnidad 2 manipular el dibujo utilizando herramientas de diseño
Unidad 2 manipular el dibujo utilizando herramientas de diseño
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2 Manipular el Dibujo Utilizando Herramientas de Diseño
Unidad 2 Manipular el Dibujo Utilizando Herramientas de DiseñoUnidad 2 Manipular el Dibujo Utilizando Herramientas de Diseño
Unidad 2 Manipular el Dibujo Utilizando Herramientas de Diseño
 
Flash conceptos basicos
Flash conceptos basicosFlash conceptos basicos
Flash conceptos basicos
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2 gaem
Unidad 2 gaemUnidad 2 gaem
Unidad 2 gaem
 
Tutorial de Power Point
Tutorial de Power PointTutorial de Power Point
Tutorial de Power Point
 
Botones pulsantes
Botones pulsantesBotones pulsantes
Botones pulsantes
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2 gaem
Unidad 2 gaemUnidad 2 gaem
Unidad 2 gaem
 
Unidad 2 gaem
Unidad 2 gaemUnidad 2 gaem
Unidad 2 gaem
 
Unidad 2
Unidad 2 Unidad 2
Unidad 2
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 

App Inventor: Ejercicio 2

  • 1. Ejercicio 02 En este ejercicio vamos a tener nuestro propio lienzo de dibujo, podremos dibujar líneas de colores, cambiar los grosores de las líneas e incluso hacer fotografías para dibujar sobre ellas. 1. Utilizar los componentes “Canvas” y “Horizontal arrangement”. 2. Controlar los eventos relacionados con las pantallas táctiles. 3. Trabajar con variables. www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ Como objetivos del ejercicio tenemos: Gabino González Vega Página 1
  • 2. Ejercicio 02 Ejercicio PASO A PASO. www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ 1. Abrimos APP INVENTOR 2. En la página de la aplicación clicamos sobre el botón 3. Accedemos con nuestra cuenta de gmail 4. App Inventor arranca con la última aplicación en la que estuvimos trabajando, para iniciar un nuevo proyecto debemos ir a Projects  Start new project Gabino González Vega Página 2
  • 3. Ejercicio 02 www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ 5. Le ponemos nombre al proyecto, recordando que APP INVENTOR no permite ni espacios ni caracteres especiales. 6. Botones de Color a. Lo primero que vamos a colocar son tres botones que nos permitirán escoger el color con el que vamos a dibujar. Esto botones estarán en la parte superior y uno al lado del otro, para que esto sea posible necesitamos un Layout, estos son los que nos permiten agrupar elementos en horizontal (HorizontalArrangement), vertical (VerticalArrangement) o en forma de tabla (TableArrangement). Para ello iremos en la columna Palette a la sección Layout y arrastraremos un HorizontalArrangement hasta el Viewer b. Una vez situado el HorizontalArrangement debemos introducir en él un botón, si recordamos el botón lo podemos encontrar en User Interface Repetimos dos veces más la operación hasta tener dentro del organizador horizontal tres botones. La apariencia de los tres botones dentro del Layout sería: Gabino González Vega Página 3
  • 4. http://tecnoloxias.webnode.es/ Ejercicio 02 c. Para comprobar que los botones están bien situados dentro del Layout debemos ir a la columna Components, en ella aparecerá el componente Screen1 (es la pantalla de trabajo), debajo y un poco hacia la derecha el componente HorizontalArrangement1 y dentro de él los tres botones, tal y como muestra la figura. d. Debemos cambiar el nombre de los botones para poderlos diferenciar en el código, para ello, seleccionamos el botón en la columna Components y clicando sobre el botón Rename les cambiamos uno a uno el nombre de los botones por BotonRojo, BotonVerde, BotonAzul www.chapoyeo.blogspot.com e. Hay que cambiar la apariencia del botón, para ello, seleccionando botón a botón vamos a cambiar en la columna Properties las propiedades de color de fondo (BackgroundColor), negrita (FontBold), tamaño de fuente (FontSize), forma (Shape), texto (Text) y color de texto (TextColor) para que cada botón haga referencia al color que tiene asignado. Gabino González Vega Página 4
  • 5. www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ Ejercicio 02 f. Como lo que queremos es que los botones aparezcan en la parte superior y centrados en pantalla debemos ir a las propiedades del HorizontalArrangement1, para ello es necesario seleccionarlo en la columna Components y luego en la columna Propierties cambiar los valores de Width (ancho) a Fill parent… y de Align Horizontal (alineación horizontal) a Center, tal y como muestra la figura. g. El resultado final debe parecerse a: 7. Crear el lienzo. a. El elemento Canvas que encontraremos en Palette  Drawing and Animation es el que nos permitirá dibujar sobre las imágenes. Lo seleccionamos y los arrastramos hacia la columna Viewer. b. En la columna Components le cambiamos el nombre por Lienzo, para ello repetiremos la misma operación que con los botones. Gabino González Vega Página 5
  • 6. http://tecnoloxias.webnode.es/ Ejercicio 02 c. Con el Lienzo seleccionado iremos a la columna Propierties y le cambiaremos sus propiedades de tal manera que el ancho sea el de la pantalla (Width a Fill Parent…), el alto se lo vamos a dar de 300 pixeles (Height a 300) y lo cargaremos con una imagen, para ello cambiaremos la propiedad Backgroundimage y subiremos una imagen. 8. Programar. www.chapoyeo.blogspot.com Con los elementos que tenemos en pantalla estamos listos para poder dibujar sobre la imagen y cambiar el color de las líneas. a. Encima de la columna Propierties nos aparece el botón Blocks, clicamos sobre él y nos aparecerá la pantalla de programación. b. Lo primero que vamos a programar es que se dibuje un punto en la imagen justo donde posamos el dedo, para ello clicamos sobre el elemento Lienzo y buscamos when lienzo.Touched do, este es el evento que marca cuando tocamos el lienzo. Gabino González Vega Página 6
  • 7. Ejercicio 02 www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ c. Este evento tiene tres atributos: i. X= nos da la posición X donde posamos el dedo. ii. Y= nos da la posición Y donde posamos el dedo. iii. toucheSprite (lo veremos en próximo ejercicios) d. Lo que pretendemos es dibujar en ese punto un círculo, para ello volvemos a clicar sobre Lienzo y buscamos la rutina Call Lienzo.DrawCircle y la colocamos dentro del evento. Esta rutina. nos pide las coordenadas del centro del círculo (X e Y) y el radio Para el centro (coordenadas X e Y) vamos a seleccionar la X e Y del evento, debemos clicar sobre la X y tomar la propiedad get X (toma el valor de X) y la colocamos en la X del DrawCircle, repetimos operación para la Y, al final nos quedará e. El valor del radio r, es un número que tomamos de la columna Blocks, en la sección Built-in, clicamos sobre Math y seleccionamos la primera opción, esta la arrastramos hasta el atributo r de drawCircle y cambiamos el valor 0 por el valor 5 Gabino González Vega Página 7
  • 8. Ejercicio 02 www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ f. Ya hemos conseguido dibujar un círculo allí donde clicamos, pero si lo que queremos en dibujar una línea por donde pasamos el dedo debemos ir al Lienzo y allí buscar la opción When Lienzo.Dragged Esta opción tiene varios atributos:  startX e startY, nos dan la coordenada X e Y del lugar donde iniciamos el arrastre  en el cado de prevX y prevY la coordenada que nos devuelve es la del punto justamente anterior al actual  por el contrario currentX y currentY nos dan el punto actual Como lo que queremos dibujar es una línea debemos buscar en Lienzo el procedimiento Call Lienzo.DrawLine, este nos pide 4 atributos que son las dos coordenadas del primer punto y las dos del último. A x2 e y2 debemos asignarle las coordenadas actuales del dedo (currentX y currentY) dependiendo de los valores que asignemos a x1 e y1 el resultado varía:   Si asignamos startX e startY nos dibujara una línea recta perfecta con inicio en el punto en que apoyamos el dedo y fin el punto donde lo levantamos. Si asignamos prevX e prevY dibuja una línea que sigue perfectamente la trayectoria del dedo sobre la pantalla. g. Nos queda por programar los botones de color, para ello debemos ir a BotonVerde y seleccionar When BotonVerde.click, como lo que queremos cambiar es el color de la línea sobre el lienzo, debemos clicar sobre Lienzo y buscar Set Lienzo.PaintColor to, para cargar el color debemos clicar en la columna de la izquierda Built-In sobre Colors y allí seleccionar el color verde. El resultado será: Gabino González Vega Página 8
  • 9. h. Repitiendo las mismas operaciones para el color azul y el rojo. 9. Mejorar la aplicación. Vamos a añadir funcionalidad a la aplicación para conseguir variar el ancho de la línea de dibujo, poder borrar todo e incluso poder trabajar sobre una foto que hagamos nosotros. a. Clicamos sobre el botón Designer situado en la parte superior derecha de la pantalla. b. Ahora añadiremos debajo del lienzo un HorizontalArrangement y dentro colocar 4 botones que llamaremos BotonFoto, BotonBorrar, BotonGrueso y BotonFino. El resultado final debe ser parecido al de la figura: www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ Ejercicio 02 Gabino González Vega Página 9
  • 10. Ejercicio 02 www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ c. Como ahora queremos hacer una foto con la cámara del teléfono debemos añadir el componente Camera que se encuentra en la columna Palette, en la sección Media d. El objeto Camera se incluye como elemento no visible, al terminar de incluir todos los elementos la apariencia de la pantalla debe ser similar a la que sigue: e. Ahora debemos programar la acción de cada botón, para ello debemos clicar sobre el botón Blocks f. BotonFoto: Con este botón pretendemos poder tomar una foto y cargarla en la aplicación como foto sobre la que dibujar. Para ello lo primero es hacer la foto, así que debemos ir en la columna Blocks, clicar sobre BotonFoto y seleccionar When BotonFoto.click, dentro debemos indicarle que queremos hacer una foto para ello debemos ir a Camera1 y buscar el procedimiento Call Camera1.TakePicture. Hasta aquí está el código necesario para hacer una foto, ahora debemos indicarle a la aplicación que la cargue como imagen de trabajo, para ello debemos clicar sobre Camera1 y buscar When Camera1.AfterPicture y dentro debemos colocar Set Lienzo.BackgroundImage to, que nos permite cambiar la imagen de fondo de Lienzo, imagen que debemos Gabino González Vega Página 10
  • 11. Ejercicio 02 www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ cargar con la foto que acabamos de realizar, por lo que debemos cargar la variable Image del procedimiento AfterPicture. g. BotonBorrar. Con este botón pretendemos borrar todas las líneas dibujadas sobre el lienzo, así que, clicamos sobre BotonBorrar, buscamos When BotonBorrar.Click. Dentro debemos colocar Call Lienzo.Clear que encontraremos al clicar sobre Lienzo. h. BotonGrueso y BotonFino. Con estos botones pretendemos cambiar el ancho de la línea, por un ancho más grueso o por un ancho más fino, es decir, el ancho de línea será variable, por lo que lo tendremos que definir como una variable. Para ello, en la columna Blocks buscamos al sección Variables, clicamos y buscamos la opción Initialize global name to, clicamos sobre name y cambiamos el nombre de la variable por Grosor. Solo queda cargar la variable con un valor, para ello vamos a Math e incluimos el valor sobre la variable. Ahora vemos cambiar el valor de r por la variable, para ello eliminamos el valor dado (3) y clicamos en Variables seleccionando Get, lo colocamos sobre el atributo r de When Lienzo.Touched que ya estaba Gabino González Vega Página 11
  • 12. Ejercicio 02 Ahora debemos programar el valor de los botones, clicamos sobre BotonGrueso y seleccionamos When BotonGrueso.click, ahora clicamos sobre Variables y tomamos Set …. to, en la parte más clara clicamos y seleccionamos global grosor, sólo queda darle el valor matemático de 10. Ahora debemos indicar que ha variado el grosor de la línea, para ello clicamos sobre Lienzo, buscamos Set Lienzo.LineWidth to, clicamos sobre Variables y seleccionamos get, en la parte más clara clicamos y seleccionamos global grosor. Repetimos las operaciones para el BotonFino, cambiando el valor 10 por 3. Al final debe quedarnos como en la imagen. www.chapoyeo.blogspot.com http://tecnoloxias.webnode.es/ programado. Ahora clicamos sobre la parte más clara de Get y seleccionamos global grosor. Debe quedar de la siguiente manera: Gabino González Vega Página 12