Está en la página 1de 40

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

Recursos Men, submen y men contextual Dilogos Notificaciones Toasts

Recursos Men, submen y men contextual Dilogos Notificaciones Toasts

Pieza clave en Android


Permite su gestin de forma cmoda y

eficiente Contextualizados a las caractersticas del dispositivo y preferencias del usuario


Idioma Tamao de pantalla Botones disponibles

Variable R
Autogenerada Rene todos los identificadores Permite identificar a todos los recursos

AssetsManager
Acceso directo al recurso Permite obtener un stream de bytes

Estructura de la variable R
R.color.* R.string.* R.dimen.* R.drawable.* R.amin.* R.menu.* R.layout.* R.styleable.* R.style.* R.xml.* R.raw.*

Tipos de recursos
Anims
Animaciones
/res/anim

Drawable
Imgenes, Shapes
/res/drawable

Layout, Mens
Definiciones de UI, vistas y mens
/res/layout /res/menu

Tipos de recursos
Values
Colores, dimensiones, literales, estilos
/res/values

Xml
Xml arbitrarios compilados, def. de bsquedas
/res/xml

Raw
recursos no compilados
/res/raw: genera identificador en la variable R /assets: no genera identificador, permite cualquier profundidad de directorios (AssetsManager)

Sintaxis de referencia
@[package:]type/name ?[package:][type/]name Rerefencia al tema actual

Package
Paquete donde reside Opcional si est definido en nuestra aplicacin android paquete del sistema

Type

id, color, dimen, drawable, anim, layout, string, attr, xml, style

Gestin de identificadores
@id/text @+id/text Crea el identificador
R.id.text

Lo usa para el elemento actual

Funcionamiento
Misma raz de nombre de la carpeta Indicacin de la configuracin separada por

guiones
drawable/ drawable-es/ drawable-es-rES/ drawable-en-rUS-finger/

Funcionamiento (II)
Valores por defecto (carpeta sin indicadores) Algoritmo de seleccin:

Recursos Men, submen y men contextual Dilogos Notificaciones Toasts

Permiten exponer funcionalidad sin sacrificar espacio en pantalla Dos tipos

Asociados a actividad (Options Menu) Se activan cuando el usuario presiona el botn hardware Menu Contextuales (Context Menu) Se asignan a cualquier vista Se muestra cuando el usuario mantiene pulsado el D-pad, el trackball o pulsa sobre la vista 3 seg.

Men en tres pasos


Icon Menu Las primeras 6 acciones Si ms de 6, botn Ms

Men en tres pasos


Expanded Menu Muestra el resto de acciones Scrollable No muestra iconos

Men en tres pasos


Submenu Muestra acciones anidadas No muestra iconos

Definicin
<?xml version="1.0" encoding="UTF-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/options" android:title="@string/options" /> <item android:id="@+id/help" android:title="@string/help"> <menu> <item android:title="Sub_1"/> <item android:title="Sub_2"/> <item android:title="Sub_3"/> </menu> </item> </menu>

Asociacin a actividad
public boolean onCreateOptionsMenu(Menu menu) { this.getMenuInflater() .inflate(R.menu.main_menu, menu); return true; }
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.options: Intent intent = new Intent("org.helloworld.Intents.Action.OPTIONS"); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } }

Asociacin a vista
view.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { Helloworld.this.getMenuInflater() .inflate(R.menu.main_menu, menu);

// Alternativa a sobrescribir onContextItemSelected() // en la actividad menu.findItem(R.id.options)


.setOnMenuItemClickListener(); }

});

Recursos Men, submen y men contextual Dilogos Notificaciones Toasts

Se muestra sobre una actividad


Oscurece la actividad y puede ser

parcialmente transparente

Permite:
Responder Si o No Seleccionar uno o varios elementos de una

lista Ver el progreso de una aplicacin

Asncronos Pueden ser manejados por la actividad Predefinidos


Reutilizacin, gestin de men, volmen,

AlertDialog CharacterPickerDialog* DatePickerDialog ProgressDialog TimePickerDialog

Mtodos a sobrescribir en la actividad


onCreateDialog() Creamos los distintos dilogos onPrepareDialog() Operaciones necesarias entre utilizaciones

Operar con un dilogo


showDialog() Pasamos el identificador del dialogo a mostrar dismissDialog() Cerramos un dialogo Igual que si se llama a dismiss() del dilogo Se guarda el estado del dilogo removeDialog() Elimina cualquier referencia al dilogo Hace un dismiss si es estaba mostrando

Creando un dilogo
static final int DIALOG_EXIT_ID = 0;
protected Dialog onCreateDialog(int id) { Dialog dialog; switch(id) { case DIALOG_EXIT_ID: // TODO: Crear el dilogo break; default: dialog = null; } return dialog; } showDialog(DIALOG_EXIT_ID);

Creando un dilogo (AlertDialog)


Mensaje con respueta positiva/negativa
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Est seguro que quiere salir?") .setCancelable(false) .setPositiveButton("S", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { MyActivity.this.finish(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); dialog = builder.create()

Creando un dilogo (AlertDialog)


Seleccin de una lista
final CharSequence[] items = {"Rojo", "Verde", "Azul"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Selecciona un color"); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { MyActivity.this.setDummyColor(items[item]); } }); dialog = builder.create();

Creando un dilogo (ProgressDialog)


ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "", "Loading. Please wait...", true);

Recursos Men, submen y men contextual Dilogos Notificaciones Toasts

Caractersticas
Un icono Un ticker y un titulo expandido Se puede personalizar con una vista propia Una intencin Lanzada cuando el usuario la selecciona Opcionales Sonido, vibracin, LED,

Servicio NotificationManager Clase Notification


Se configura la notificacin Es posible lanzarla ms de una vez En cada lanzamiento se puede identificar de forma particular Otras caractersticas AUTO_CANCEL, INSISTENT, ONGOING_EVENT, NO_CLEAR

Ejemplo
NotificationManager manager = (NotificationManager) getSystemService(Service.NOTIFICATION_SERVICE);
int icon = android.R.drawable.stat_notify_voicemail; String tickerText = "Nuevo correo"; Context context = getApplicationContext(); String contentTitle = "Tienes nuevo correo"; String contentText = "Buenos das..."; PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MyOtherActivity.class), 0);

Notification notification = new Notification(icon, tickerText, System.currentTimeMillis()); notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
manager.notify(1, notification);

Recursos Men, submen y men contextual Dilogos Notificaciones Toasts

Notificaciones cortas
Cortas en tiempo y espacio Texto, aunque podemos asignar una vista

Se debe ejecutar en un hilo de UI No son modales


Independiente de la aplicacin que se est

ejecutando Permite a un servicio notificar al usuario sin interrumpirlo

Ejemplo muy simple


Context context = getApplicationContext(); String msg = "Fotografa subida con xito"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, msg, duration); toast.show();

Creacin de aplicaciones mviles en Android

Ampliar Helloworld con men Dilogo de confirmacin de salir Lanzar toast desde men Dilogo de progreso con hilo

Recursos, men, dilogos,


Android Developer Reference
http://developer.android.com/guide/topics/resources/index.html http://developer.android.com/guide/topics/ui/menus.html http://developer.android.com/guide/topics/ui/dialogs.html http://developer.android.com/guide/topics/ui/notifiers/index.html

Android Application Development


Reto Meier, Editorial Wrox

También podría gustarte