Está en la página 1de 31

Cursos de orientacin profesional

ACCIONES COFINANCIADAS CON FONDOS COMUNITARIOS DEL FONDO SOCIAL EUROPEO, A TRAVS DEL PROGRAMA OPERATIVO FONDO SOCIAL EUROPEO DE CANARIAS 20072013 CON UN PORCENTAJE DE CONFINANCIACIN DEL 85%.

Da 1 Qu es Android? Actividades e intenciones Da 2 Layouts y controles grficos Recursos, mens y dilogos Da 3 Persistencia de datos y content providers Grficos y animaciones 2D y 3D Da 4 Servicios en segundo plano Control del hardware especial Da 5 App Widgets y Live folders Publicacin de aplicaciones

Creacin de aplicaciones mviles en Android

Rayco Araa rayco.arana@gmail.com Instituto SIANI

Grficos 2D Animacin 2D Grficos 3D

Grficos 2D Animacin 2D Grficos 3D

View
Sobrescribir mtodo onDraw() API Grfica `Clsica Canvas
Tiene las operaciones de pintado

Paint
Es el pincel con el que pintamos

Bitmap
Es el lugar donde pintamos (encapsulado por el Canvas)

Proceso de pintar en el hilo del UI

SurfaceView
Actualizado por un segundo hilo Ideal para operaciones pesadas de pintado No bloquea la aplicacin Adios al dialogo La actividad no responde! Ideal para previsualizar la cmara, 3D, etc. Mayor uso de memoria No todo son ventajas

Drawable
android.graphics.drawable.*

Cualquier cosa que se pueda pintar en

pantalla No tiene eventos como las vistas

Drawable
Simples:
Bitmap. Nine Patch. PNG especial con marcas para su redimensin. Shape. Vectorial, al modificar tamao mantiene calidad.

Compuestos:
Layers. Muestra unos sobre otros. States. Muestra uno basado en su estado (pulsado, ). Levels. Muestra uno basado en su nivel (ej. batera).

Drawable
Ej. Shape
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="ring" android:innerRadiusRatio="3" android:thicknessRatio="8" android:useLevel="false"> <gradient android:type="sweep" android:useLevel="false" android:startColor="#4c737373" android:centerColor="#4c737373" android:centerY="0.50" android:endColor="#ffffd300" /> </shape>

Grficos 2D Animacin 2D Grficos 3D

Modificar el contenido de una vista en el tiempo


Si sobrepasa los limites de la vista, se recorta

Dos tipos
Frame by Frame Interpolado

Frame by Frame
Se basa en mostrar diferentes elementos

Drawable Cada frame define su duracin

Frame by Frame
Definicin XML
<animation-list android:id="selected" android:oneshot="false"> <item android:drawable="@drawable/wheel0" android:duration="50" <item android:drawable="@drawable/wheel1" android:duration="50" <item android:drawable="@drawable/wheel2" android:duration="50" <item android:drawable="@drawable/wheel3" android:duration="50" <item android:drawable="@drawable/wheel4" android:duration="50" <item android:drawable="@drawable/wheel5" android:duration="50" </animation-list> /> /> /> /> /> />

Frame by Frame
Asignacin y comienzo por cdigo
ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image); img.setBackgroundResource(R.drawable.spin_animation); AnimationDrawable animation = (AnimationDrawable) img.getBackground(); animation.start()

Interpolado
til para transiciones y feedback al usuario Transicin entre actividades, layouts, contenidos, `Agitar un campo errneo Se definen estados inicial y final El sistema interpola la modificacin gradual conforme al tiempo Simple de usar y ms eficiente que pintar `a

mano

Interpolado
Transformaciones Opacidad AlphaAnimation Rotacin RotateAnimation Escalado ScaleAnimation Traslacin TranslateAnimation AnimationSet Permite combinar transformaciones

Interpolado
<?xml version=1.0 encoding=utf-8?> <set xmlns:android=http://schemas.android.com/apk/res/android

android:shareInterpolator=true>
<rotate android:fromDegrees=0 android:toDegrees=360 android:pivotX=50% android:pivotY=50% android:startOffset=0 android:duration=1000 /> <alpha android:fromAlpha=1.0 android:toAlpha=0.0 android:startOffset=500 android:duration=500 /> </set>

Interpolado
Animation exampleAnim = AnimationUtils.loadAnimation(this,
exampleAnim.setRepeatMode(Animation.RESTART); exampleAnim.setRepeatCount(Animation.INFINITE); myView.startAnimation(exampleAnim);

R.anim .example_anim);

Interpolado
Diferentes interpoladores
AccelerateDecelerateInterpolator AccelerateInterpolator AnticipateInterpolator AnticipateOvershootInterpolator BounceInterpolator CycleInterpolator DecelerateInterpolator LinearInterpolator OvershootInterpolator

Interpolado
LayoutAnimation Permite animar layouts y view groups Tiene lugar cuando se hace el layout LayoutAnimationController
Aplica una animacin a cada vista hija Interpolador, direccin y el delay de comienzo config. Se puede personalizar getDelayForView()

GridLayoutAnimationController
Adicionalmente permite indicar la secuencia usando como referencia fila/columna

Interpolado
Cundo empieza o termina una animacin? AnimationListener
onAnimationStart onAnimationEnd onAnimationRestart

Grficos 2D Animacin 2D Grficos 3D

Showroom

Speed Forge 3D

Desarrollado por un desarrollador independiente Control con acelermetro Pionero en grficos 3D Usado para demostrar

capacidad grfica

Grficos 3D == OpenGL ES
Soportada versin 1.0 Corresponde a 1.3 de la versin de escritorio Soporte bsico de 1.1, no completo

GLSurfaceView
Vista sobre la que pinta OpenGL Deriva de SurfaceView Dos modo de pintado Continuo Bajo demanda Necesita ser notificado del ciclo de vida de la

actividad (onPause y onResume)


Necesario para parar o resumir el hilo gestionado

GLSurfaceView
Comunicacin entre threads Uso de queueEvent Necesitaremos comunicar UI Thread con Renderer Thread
Toda entrada del usuario la recibiremos en el UI Thread

setRenderer() Solo se debe llamar una vez por GLSurfaceView Dispara el hilo de renderizacin

GLSurfaceView.Renderer
A partir de 1.5 Permite de forma sencilla realizar

operaciones de pintado y gestin de la superficie Tres mtodos


onSurfaceChanged onSurfaceCreated onDrawFrame

GLSurfaceView.Renderer
onSurfaceCreated Configuracin onSurfaceChanged Viewport Matriz de proyeccin Frustum onDrawFrame Limpiar Pintar

Creacin de aplicaciones mviles en Android

Animando un indicador de progreso Animando un tringulo en 3D

Grficos 2D y Animaciones
Android Developer Reference
http://developer.android.com/guide/topics/graphics/2d-graphics.html

Android Application Development


Reto Meier, Editorial Wrox

OpenGL
Khronos Groups OpenGL ES Overview
http://www.khronos.org/opengles/

OpenGL Programming Guide (the red book)


http://www.glprogramming.com/red/

También podría gustarte