El gran libro de programación avanzada con Android
Primera edición, 2012
© 2012 José Enrique Amaro Soriano
© MARCOMBO, S.A. 2012
Gran Via de les Corts Catalanes, 594
08007 Barcelona
www.marcombo.com
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.»
ISBN: 978-84-267-2023-8
«En un futuro cercano, no habrá ningún accesorio, salvo
una escoba acaso, que no tenga un procesador dentro.» (Arthur C. Clarke)
1. INTRODUCCION
2. ANIMACIONES INTERPOLADAS
2.1. Traslaciones
2.2. Repetición de animaciones
2.3. Rotaciones
2.4. Dilataciones y contracciones
2.5. Apariciones y desapariciones
2.6. Series de animaciones
2.7. Animaciones con Java
2.8. AnimationListener
2.9. Animación de un layout
2.10. Animación de un layout en Java
2.11. LayoutAnimationListener
3. ANIMACIÓN DE FOTOGRAMAS
3.1. Animación usando recursos
3.2. Animación de fotogramas en Java: AnimationDrawable
3.3. Ajuste de la relación de aspecto
4. PROCESOS EN BACKGROUND
4.1. Uso de Timer y RunOnUiThread
4.2. Modificación de la UI con post
4.3. Modificación de la UI con Handler.post
4.4. Métodos combinados para modificar la UI
4.5. Modificación de la UI con AsyncTask
4.6. Máquina tragaperras
5. SENSORES
5.1. Sensor de aceleración
5.2. Lista de sensores de un teléfono
5.3. Sensor de campo magnético
5.4. Sensor de orientación
5.5. Sensor de proximidad y sensor de luminosidad
6. DIÁLOGOS
6.1. Crear un diálogo
6.2. Diálogos con botones
6.3. Diálogos con ítems
6.4. Diálogos de elección única
6.5. Diálogos de elección múltiple
6.6. Diálogos de progreso
6.7. Diálogos personalizados
7. MENÚS
7.1. Menú de opciones
7.2. Submenús
7.3. Submenú con casillas
7.4. Menús de contexto
8. VISUALIZACIÓN DE LISTAS
8.1. La clase ListView
8.2. Listas interactivas
8.3. ListView personalizado
8.4. Construcción de un BaseAdapter
8.5. La clase ListActivity
8.6. Listas desplegables con SpinnerView
9. BASES DE DATOS
9.1. Elementos de SQLite y SQL
9.1.1. Iniciar sqlite3 con ADB
9.1.2. Crear una tabla
9.1.3. Algunas expresiones SQL
9.2. Crear una base de datos con Android
9.3. Borrar filas de una tabla
9.4. Automatizar las columnas del Cursor
9.5. Abrir una base de datos con SQLiteOpenHelper
9.6. Borrar filas con delete
9.7. Realizar búsquedas con query
9.8. Adaptar un Cursor a un ListView
10. PROVEEDORES DE CONTENIDOS
10.1. El proveedor de contactos
10.2. La tabla de datos de los contactos
10.3. La tabla raw contacts
10.4. Añadir contactos
10.5. Otros proveedores de contenidos
10.6. Implementación de un ContentProvider
10.7. Acceso externo a nuestro ContentProvider
10.8. La clase UriMatcher
11. COMUNICACIÓN ENTRE ACTIVIDADES
11.1. Secuencia de estados de una actividad
11.2. Resultado de una actividad
11.3. Resultado de cancelar una subactividad
11.4. Grupo de actividades
11.5. Abrir aplicaciones externas explícitamente
11.6. Abrir aplicaciones externas implícitamente
11.7. Uso del PackageManager
11.8. Filtro de datos en un intent
11.9. Agregar funcionalidad de otras apps
12. INTERNET Y RSS FEEDS
12.1. Advertencia importante antes de conectar a Internet
12.2. Mostrar páginas web con WebView
12.3. Mostrar imágenes con WebView
12.4. Mostrar HTML con WebView
12.5. Conexión HTTP
12.6. Introducción a XML y RSS
12.7. Análisis de documentos XML con DOM
12.8. Extraer los valores de los elementos XML
12.9. Conectar a un RSS feed
12.10. Inspeccionar una página WEB con Jsoup
12.11. Descargar y comprimir una imagen de Internet
13. CORREO ELECTRÓNICO
13.1. Enviar un email con un intent
13.2. Enviar un fichero adjunto por email
13.3. Enviar ficheros comprimidos con zip
14. LOCALIZACIÓN Y MAPAS
14.1. Coordenadas en Google Maps
14.2. El API de Google Maps
14.3. MapView
14.4. Control de mapas
14.5. Geocodificación
14.6. Localización
14.7. Dibujar sobre un mapa y geocodificación inversa
APÉNDICE A
La interfaz de usuario
A.1. Orientación de una actividad
A. 2. Dimensiones de la pantalla
APÉNDICE B
Complementos de Java
B. 1. Métodos con número variable de parámetros
B.2. ArrayList
B.3. Genéricos
B.4. Definición de una clase con tipos genéricos
APÉNDICE C
Versiones de Android
BIBLIOGRAFÍA
En mi primer libro sobre programación en Android, titulado Android: programación de dispositivos móviles a través de ejemplos (que denominaré abreviadamente Android a partir de ahora) y publicado por la editorial Marcombo, presentaba las técnicas esenciales para iniciarse rápidamente en la programación del sistema, enfatizando en aplicaciones de cálculo numérico y gráficos. En este segundo libro introduzco técnicas más avanzadas (aunque no necesariamente más complicadas) para realizar programas que se ejecutarán en un smartphone, tablet o cualquier otro dispositivo con el sistema operativo Android. La obra está dirigida a no especialistas y supone un acercamiento genuinamente práctico al sistema Android. No se requieren conocimientos profundos de Java. El apéndice A de mi primer primer libro contiene una introducción al lenguaje Java específico para Android, suficiente para seguir este segundo. Sin embargo, no es necesario haberlo leído para seguir y entender este, siempre que se posean las nociones básicas para crear una actividad con Android.
El material contenido en esta obra se plantea como una colección de ejemplos escritos expresamente para ilustrar alguna técnica particular de Android. Los ejemplos son programas completos, pero breves, que permitirán al lector minimizar las dificultades que puedan surgir para comprender la materia. La idea es que, después de trabajar los programas simples de este libro, el lector sea capaz de escribir sus propios programas y de explorar por sí mismo el sistema. Todos los ejemplos han sido probados en un dispositivo o en el emulador, y funcionan correctamente en las versiones de Android 2.1 (Eclair) y posteriores (ver Apéndice A para una lista de las versiones de Android). El código fuente de todos los programas se puede descargar de la página web del autor: http://www.ugr.es/local/amaro/android
La selección del material no es ni mucho menos exhaustiva. Las librerías de Android contienen numerosas clases y métodos para realizar casi cualquier tarea que el lector pueda imaginar, y otras que ni se le ocurriría que pudieran realizarse con un artefacto tan pequeño como un teléfono. La principal fuente de documentación y recursos de Android es la página web oficial de Android developers y los foros especializados que se encuentran en Internet, donde el lector iniciado puede profundizar y ampliar sus conocimientos sobre el sistema Android. Sin embargo, la vasta extensión de sus librerías hace que, al contrario que con otros lenguajes, introducirse en Android no sea tarea fácil para los no iniciados. Con este libro se pretende contribuir a soslayar las dificultades y acercar este novedoso sistema al público en general. Profesores, estudiantes, científicos, ingenieros, técnicos y público en general encontrarán ideas útiles que podrán aplicar en sus trabajos, en sus tareas cotidianas o simplemente como entretenimiento, usando su smartphone o su tablet Android como herramienta.
Читать дальше