AppWidgets. Índice. Copyright Dept. Ciencia de la Computación e IA All rights reserved.
|
|
- Adolfo Tomás Aguilar Giménez
- hace 7 años
- Vistas:
Transcripción
1 Índice 1 AppWidgets Crear un Widget Definición XML del Widget Layout del Widget Implementación de la funcionalidad del Widget Manifest Actualización del Widget RemoteViews Eventos de actualización Abrir una aplicación Servicio de actualización Actividad de configuración... 11
2 En los escritorios de Android es posible colocar un tipo especial de aplicaciones denominadas Widgets. Estos Widgets permiten mostrar al usuario una información (o una especie de interfaz reducida) sin necesidad de abrir una aplicación. Ocupan un determinado tamaño en el escritorio, por lo que es posible tener en el mismo escritorio colocados a la vez varios de estos elementos. Son muy útiles para mostrar información rápida al usuario, como por ejemplo la hora, los últimos correos, últimos eventos del calendario, etc., y que al pulsar sobre ellos se abra la aplicación completa para poder interactuar. 1. AppWidgets Los widgets, que desde el punto de vista del programador son AppWidgets, son pequeños interfaces de programas Android que permanecen en el escritorio del dispositivo móvil. Para añadir alguno sobra con hacer una pulsación larga sobre un área vacía del escritorio y seleccionar la opción "widget", para que aparezca la lista de todos los que hay instalados y listos para añadir. En la versión 4 de Android para añadir widgets hay que ir al menú de aplicaciones y desde la sección de widgets seleccionar uno y pulsarlo prolongadamente para arrastrarlo a la zona deseada de la pantalla de inicio. Seleccionar un (App) Widget Este es un ejemplo de un widget en el que se muestra un reloj, incluido de serie con Android: 2
3 AppWidget reloj de Android 2. Crear un Widget Para crear un widget se necesitan varios elementos: Una definición o configuración de los metadatos del Widget en XML. Un layout para definir su interfaz gráfica. La implementación de la funcionalidad del Widget (un IntentReceiver). Declaración del Widget en el Android Manifest de la aplicación Definición XML del Widget Los AppWidgets ocupan un determinado tamaño y se refrescan con una determinada frecuencia, estos son metadatos que hay que declarar en el XML que define el widget. Se puede añadir como nuevo recurso XML de Android, y seleccionar el tipo Widget. Se coloca en la carpeta res/xml/. A continuación se incluye la definición XML guardada en "res/xml/miwidget_conf.xml" de nuestro ejemplo: <?xml version="1.0" encoding="utf-8"? > <appwidget-provider xmlns:android=" android:minwidth="146dip" android:minheight="72dip" android:updateperiodmillis=" " android:label="mi Widget" android:initiallayout="@layout/miwidget_layout" /> Las propiedades que hemos definido en este XML son las siguientes: minwidth y minheight: ancho y alto mínimo que ocupará el Widget en el escritorio. updateperiodmillis: frecuencia de actualización del Widget en milisegundos. label: nombre del Widget que se mostrará en el menú de selección de Android. initiallayout: referencia al layout XML con la interfaz del Widget. La pantalla de inicio de Android por defecto está dividida en una matriz de 4x4 celdas donde se pueden colocar aplicaciones, accesos directos y Widgets. Los Widgets, como hemos dicho, pueden ocupar más de una celda. Estas celdas tienen una dimensión de 74x74 dip (píxeles independientes del dispositivo). Para indicar el número de celdas que va a ocupar el Widget tenemos que calcular el número de "dip" que va a ocupar. La fórmula para calcular esto es muy sencilla: ancho_minimo = (num_celdas_ancho * 74) - 2 alto_minimo = (num_celdas_alto * 74) - 2 Los 2 dip que se le restan son por el borde. Por ejemplo, en nuestro caso, para que ocupe 2 celdas de ancho por 1 celda de alto tenemos que indicar una dimensiones de 146dip x 3
4 72dip. En los dispositivos donde las dimensiones mínimas que establezcamos no coincidan exactamente con las celdas de la pantalla, el tamaño de nuestro widget será extendido para llenar lo que queda libre de las celdas. La frecuencia de actualización del Widget (updateperiodmillis) tiene un mínimo permitido: 30 minutos ( milisegundos). Además, si el dispositivo está en reposo cuando se realiza la actualización éste se despertará, por lo que puede que se incremente el gasto de batería si se realiza con mucha frecuencia. Es aconsejable, para este tipo de prácticas, utilizar en su lugar intents programados mediante un AlarmManager (como veremos más adelante) Layout del Widget En el XML de configuración de ejemplo, en el campo "initiallayout", se indica que el layout del widget se encuentra en "res/layout/miwidget_layout.xml". Este es el layout que define la interfaz gráfica del Widget, su diseño es análogo al del interfaz de cualquier aplicación normal, pero con unas pequeñas restricciones. Por cuestiones de diseño de Android, relacionadas con seguridad y eficiencia, los únicos componentes gráficos permitidos en el layout del widget son: Los layouts: FrameLayout, LinearLayout y RelativeLayout. Los views: TextView, Button, ImageButton, ImageView, ProgressBar, AnalogClock y Chronometer. Es interesante el hecho de que los EditText no están permitidos en el layout del widget. Para conseguir este efecto lo que se suele hacer es utilizar una imagen que imite este view y al hacer click, abrir una actividad semi-transparente por encima que sea la que nos permita introducir el texto. Desde la versión 3.0 de Android los widget cuentan con nuevas características y mayor interactividad. Los nuevos componentes que se pueden utilizar son GridView, ListView, StackView, ViewFlipper, AdapterViewFlipper. Por ejemplo StackView no estaba presente entre los componentes de las versiones anteriores y es un view que permite mostrar "tarjetas" e ir pasándolas hacia delante o hacia atrás, como se muestra a continuación: 4
5 Widget con StackView Un ejemplo de layout podría ser el siguiente, en el que se coloca un reloj analógico y un campo de texto al lado: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/miwidget" xmlns:android=" android:layout_width="wrap_content" android:layout_height="wrap_content"> <AnalogClock android:id="@+id/analogclock1" android:layout_width="45dp" android:layout_height="45dp" /> <TextView android:text="" android:id="@+id/textview01" android:textsize="9dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:shadowcolor="#000000" android:shadowradius="1.2" android:shadowdx="1" android:shadowdy="1"> </TextView> </LinearLayout> 2.3. Implementación de la funcionalidad del Widget Los AppWidgets no necesitan ninguna actividad, sino que se implementan como IntentReceivers con IntentFilters que detectan intents con acciones de actualización de widget como AppWidget.ACTION_APPWIDGET_UPDATE, DELETED, ENABLED, DISABLED, así como con acciones personalizadas. 5
6 Android provee la clase AppWidgetProvider (clase derivada de BroadcastReceiver) que es una alternativa proporcionada por Android para encapsular el procesamiento de los Intent y proveer de handlers para la actualización, borrado, habilitación y deshabilitación del widget. En esta clase deberemos implementar los mensajes a los que vamos a responder desde nuestro widget, entre los que destacan: onenabled(): lanzado cuando se añade al escritorio la primera instancia de un widget. onupdate(): lanzado periódicamente cada vez que se debe actualizar un widget. ondeleted(): lanzado cuando se elimina del escritorio una instancia de un widget. ondisabled(): lanzado cuando se elimina del escritorio la última instancia de un widget. En la mayoría de los casos, tendremos que implementar como mínimo el evento onupdate(). El resto de métodos dependerán de la funcionalidad de nuestro widget. En nuestro ejemplo de momento solo vamos a implementar el método "onupdate", aunque lo dejaremos vacío. A continuación se incluye un ejemplo del código de nuestro Widget: public class MiWidget extends public void onupdate(context context, AppWidgetManager appwidgetmanager, int[] appwidgetids) // Actualizar el Widget Manifest El último paso es declarar el Widget dentro del AndroidManifest.xml de nuestra aplicación. No necesitamos declarar una actividad principal, sino que solamente tendremos que declarar el receptor de intents de nuestro widget: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" android:versioncode="1" android:versionname="1.0" package="es.ua.jtech.av.appwidget"> <uses-sdk android:minsdkversion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name=".miwidget" android:label="frases Widget"> <intent-filter> <action android:name="android.appwidget.action.appwidget_update" /> </intent-filter> <intent-filter> <action android:name="es.ua.jtech.av.action_widget_click" /> </intent-filter> <meta-data android:name="android.appwidget.provider" 6
7 </receiver> </application> </manifest> /> En el ejemplo anterior de manifest se declara nuestro Widget como un elemento "receiver" dentro de la sección "application". En la etiqueta "name" se indica el nombre de la clase java con el código del receptor. Además se añaden dos secciones importantes, una sección "meta-data" donde en "resource" se tiene que indicar el fichero XML que contiene la descripción del Widget; y otra sección de "intent-filter" para la captura de eventos. En este ejemplo se capturará el evento de actualización del widget y un evento personalizado "es.ua.jtech.av.action_widget_click" (que veremos más adelante). Llegados a este punto ya es posible probar el Widget, añadir instancias al escritorio, desplazarlo por la pantalla o eliminarlo. 3. Actualización del Widget Para realizar la actualización del Widget tenemos que modificar su fichero de código para completar el método "onupdate" que habíamos dejado vacío en el ejemplo anterior. Es importante tener en cuenta que es posible que hayan varias instancias de un mismo widget añadidas al escritorio, por lo que tendremos que actualizarlas todas. El método "onupdate" recibe como parámetro un array con la lista de Widgets que hay que actualizar. Por lo que de forma genérica podríamos realizar la actualización de la public void onupdate(context context, AppWidgetManager appwidgetmanager, int[] appwidgetids) //Iteramos la lista de widgets en ejecución for (int i = 0; i < appwidgetids.length; i++) //ID del widget actual int widgetid = appwidgetids[i]; //Actualizamos el widget actual actualizarwidget(context, appwidgetmanager, widgetid); private void actualizarwidget(context context, AppWidgetManager appwidgetmanager, int widgetid) // Actualizar un Widget... Al extraer la actualización a un método estático independiente podemos reutilizar este código para llamarlo desde otras partes de la aplicación, como por ejemplo para realizar la actualización inicial. Para realizar la actualización de las vistas de nuestro Widget necesitamos utilizar una clase especial llamada RemoteViews. A continuación se explica este proceso de 7
8 actualización RemoteViews La clase RemoteViews se utiliza para definir y manipular una jerarquía de views que se encuentra en el proceso de una aplicación diferente. Permite cambiar propiedades y ejecutar métodos. En el caso de los widgets, los views están alojados en un proceso (normalmente perteneciente a la pantalla del Home) y hay que actualizarlos desde el IntentReceiver que definimos para controlar el widget. La actualización de los valores de los views se realiza por medio de los métodos de la clase RemoteViews, tales como.settextviewtext(),.setimageviewbitmap(), etc. En primer lugar crearemos un objeto de tipo RemoteViews al que le pasaremos el identificador del layout de nuestro Widget, con este objeto ya podemos actualizar las vistas de este layout, por ejemplo: RemoteViews updateviews = new RemoteViews( context.getpackagename(), R.layout.miwidget_layout); updateviews.settextviewtext(r.id.textview01, "Mensaje de prueba"); RemoteViews proporciona métodos para acceder a propiedades como setint(...), setboolean(...), setbitmap(...), etc, y métodos para acceder a Views específicos, como settextviewtext(...), settextcolor(...), setimageviewbitmap(...), setchronometer(...), setprogressbar(...), setviewvisibility(...). Una vez definido el cambio a realizar por medio de RemoteViews, tenemos que aplicar estas modificaciones utilizando el appwidgetmanager que recibimos como parámetro. Esto es importante, ya que de no hacerlo la actualización de los controles no se reflejará correctamente en la interfaz del widget. En el siguiente código se muestra un ejemplo completo en el que se actualiza el campo de texto del Widget con la hora actual: private void actualizarwidget(context context, AppWidgetManager appwidgetmanager, int widgetid) RemoteViews updateviews = new RemoteViews( context.getpackagename(), R.layout.miwidget_layout); //Obtenemos la hora actual Calendar calendario = new GregorianCalendar(); String hora = calendario.gettime().tolocalestring(); //Actualizamos la hora en el control del widget updateviews.settextviewtext(r.id.textview01, hora); //Notificamos al manager de la actualización del widget actual appwidgetmanager.updateappwidget(widgetid, updateviews); 4. Eventos de actualización 8
9 A los controles utilizados en los widgets de Android, que ya sabemos que son del tipo RemoteView, no podemos asociar eventos de la forma tradicional. Sin embargo, tenemos la posibilidad de asociar a un evento (por ejemplo la realización de un click) una determinada acción de tipo broadcast (PendingIntent) que será lanzada cada vez que se produzca dicho evento. Podemos configurar el propio widget para que capture esos mensajes (ya que como indicamos no es más que un componente de tipo broadcast receiver). Para esto tenemos que implementar su método "onreceive()" con las acciones necesarias a ejecutar tras capturar el mensaje. De esta forma "simulamos" la captura de eventos sobre controles de un widget. En primer lugar hacemos que se lance un intent broadcast cada vez que se pulse sobre el widget o algún elemento del mismo. Para ello, en el método "actualizarwidget()" construiremos un nuevo Intent asociándole una acción personalizada, que en nuestro caso llamaremos "es.ua.jtech.av.action_widget_click". Como parámetro del nuevo Intent insertaremos mediante putextra() el ID del widget actual de forma que más tarde podamos saber el widget concreto que ha lanzado el mensaje. Por último crearemos el PendingIntent mediante el método getbroadcast() y lo asociaremos al evento onclick del control utilizando setonclickpendingintent() y pasándole el ID del control. Veamos cómo queda todo esto: // Asociamos los 'eventos' al widget Intent intent = new Intent("es.ua.jtech.av.ACTION_WIDGET_CLICK"); intent.putextra(appwidgetmanager.extra_appwidget_id, widgetid); PendingIntent pendingintent = PendingIntent.getBroadcast(context, widgetid, intent, PendingIntent.FLAG_UPDATE_CURRENT); updateviews.setonclickpendingintent(r.id.miwidget, pendingintent); Es importante que la acción de este intent se añada al Manifest, dentro de la sección "receiver" del Widget, tendremos que declarar otro "intent-filter" para que capture este tipo de eventos y responda a ellos: <intent-filter> <action android:name="es.ua.jtech.av.action_widget_click" /> </intent-filter> Por último tenemos que implementar el evento "onreceive()" del widget para actuar en caso de recibir nuestro mensaje de actualización personalizado. Dentro de este evento comprobaremos si la acción del mensaje recibido es la nuestra, y en ese caso recuperaremos el ID del widget que lo ha lanzado, obtendremos una referencia al "widget manager", y por último llamamos a nuestro método estático de actualización pasándole estos public void onreceive(context context, Intent intent) if (intent.getaction().equals("es.ua.jtech.av.action_widget_click")) 9
10 //Obtenemos el ID del widget a actualizar int widgetid = intent.getintextra( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); //Obtenemos el widget manager de nuestro contexto AppWidgetManager widgetmanager = AppWidgetManager.getInstance(context); widgetid); //Actualizamos el widget if (widgetid!= AppWidgetManager.INVALID_APPWIDGET_ID) actualizarwidget(context, widgetmanager, Con esto ya hemos finalizado la emisión y captura de eventos al pulsar sobre el Widget (o algún view de este Widget). Dentro del método "actualizarwidget" realizaremos las acciones de actualización, que dependerán del tipo de widget en cuestión que estemos implementando. Para actualizaciones periódicas (con una frecuencia inferior a 30 min) se puede utilizar el AlarmManager que podría ser programado para forzar la actualización del widget, enviando periódicamente un broadcast con la acción que hayamos definido para tal fin Abrir una aplicación Al pulsar sobre un widget, en lugar de lanzar un intent tipo broadcast, también podríamos lanzar un intent que abra un actividad determinada, simplemente realizando: //Comportamiento al pulsar el widget: lanzar alguna actividad Intent defineintent = new Intent(context, Actividad.class); PendingIntent pendingintent = PendingIntent.getActivity( context, 0, defineintent, 0); updateviews.setonclickpendingintent(r.id.miwidget, pendingintent); 5. Servicio de actualización Otra alternativa para refrescar la interfaz gráfica es el uso de un servicio que actualice el widget. Para ello habría que declararlo en el manifest y declarar la clase del servicio UpdateService extends Service dentro de la clase MiWidget. A continuación se muestra un ejemplo de la clase MiWidget que implementa un widget: public class MiWidget extends public void onupdate(context context, AppWidgetManager appwidgetmanager, int[] appwidgetids) // Inicio de nuestro servicio de actualización: context.startservice( new Intent(context, UpdateService.class)); 10
11 public static class UpdateService extends public int onstartcommand(intent intent, int flags, int startid) RemoteViews updateviews = new RemoteViews( getpackagename(), R.layout.miwidget_layout); //Aqui se actualizarían todos los tipos de Views: updateviews.settextviewtext(r.id.textview01, "Valor con el que refrescamos"); //... //Y la actualización a través del updateviews creado: ComponentName thiswidget = new ComponentName( this, MiWidget.class); AppWidgetManager.getInstance(this).updateAppWidget( thiswidget, updateviews); return public IBinder onbind(intent intent) return null; 6. Actividad de configuración Algunos widgets muestran una actividad de configuración la primera vez que son añadidos a la pantalla. Cuando el sistema solicita la configuración de un widget se recibe un broadcast intent con la acción android.appwidget.action.appwidget_configure, por tanto definiremos en el manifest nuestra actividad con el intent-filter correspondiente, que la ejecutará al recibir la acción: <activity android:name=".miconfigurationactivity"> <intent-filter> <action android:name="android.appwidget.action.appwidget_configure"/> </intent-filter> </activity> Esta actividad es una actividad normal, que podemos crear utilizando todos los conceptos que hemos visto, recoger los datos del usuario y almacenarlos de alguna forma (por ejemplo utilizando "SharedPreferences"). Para finalizar la actividad podemos colocar botones para aceptar o cancelar. En el caso de que se cancele tendríamos que realizar lo siguiente: setresult(result_canceled); finish(); 11
12 Si se presiona el botón de aceptar la actividad debe devolver un Intent que incluya un extra con el identificador del App Widget, usando la constante EXTRA_APPWIDGET_ID (se puede obtener a partir del Intent que lanza la actividad). A continuación se muestra el código que realizaría esta acción: //Obtenemos el Intent que ha lanzado esta ventana //y recuperamos sus parámetros Intent intentorigen = getintent(); Bundle params = intentorigen.getextras(); //Obtenemos el ID del widget que se está configurando int widgetid = params.getint( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); //Desde el botón aceptar... Intent resultado = new Intent(); resultado.putextra(appwidgetmanager.extra_appwidget_id, widgetid); setresult(result_ok, resultado); finish(); Esta actividad de configuración también debe ser declarada en el xml que contiene los metadatos del widget: <appwidget-provider... android:updateperiodmillis=" " android:configure="es.ua.jtech.av.appwidget.miconfigurationactivity" /> La actividad será mostrada solamente al añadir el widget a la pantalla por primera vez. 12
13 13
Ejercicios - AppWidgets
Índice 1 IP AppWidget (1.5 puntos)... 2 2 StackWidget (1.5 puntos)... 4 1. IP AppWidget (1.5 puntos) Vamos abrir el proyecto android-av-appwidget para construir un AppWidget de Android, que nos muestre
Más detallesDesarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android Sesión 8: Servicios avanzados Desarrollo de Aplicaciones para Android Depto. Ciencia de la Computación e IA Servicios avanzados-1 Puntos a tratar Servicios en segundo
Más detallesNotificaciones y AppWidgets - Ejercicios
Notificaciones y AppWidgets - Ejercicios Índice 1 Servicio con notificaciones: Números primos...2 2 IP AppWidget...3 3 StackWidget (*)...5 1. Servicio con notificaciones: Números primos El proyecto android-av-notificaciones
Más detallesAppWidgetProviderInfo : es un objeto que describe la metadata del widget, su periodo de actualización, el layout etc Este es definido en XML.
Widgets en Android Widgets Los Widgets son aplicaciones en miniaturas que pueden ser embebidas en otras aplicaciones ( Como la pantalla HOME) y pueden recibir actualizaciones periódicas. La pantalla de
Más detallesServicios avanzados - Ejercicios
Índice 1 Servicio reproductor de música...2 2 Servicio con proceso en background. Contador...3 3 Servicio con notificaciones. Números primos...3 4 IP AppWidget...5 1. Servicio reproductor de música Vamos
Más detallesServicios Avanzados. Índice. 1 Servicios en segundo plano... 2 2 Notificaciones...3 3 AppWidgets...5 4 Publicación de software...8
Índice 1 Servicios en segundo plano... 2 2 Notificaciones...3 3 AppWidgets...5 4 Publicación de software...8 1. Servicios en segundo plano Los servicios en segundo plano, Services son similares a los demonios
Más detallesEjercicio 18. Configuración de Widgets en Android. Android Con Java. Ejercicio 18. Configuración de Widgets en Android. Curso de Android con Java
Android Con Java Ejercicio 18 Configuración de Widgets en Android Objetivo del Ejercicio El objetivo del ejercicio crear un Widget que antes de utilizarlo nos permita configurarlo. En este caso, solicitar
Más detallesServicios Basados en Localización (LBS) Tema 6 Desarrollo de aplicaciones en Android
Servicios Basados en Localización (LBS) Tema 6 Desarrollo de aplicaciones en Android Ramón Alcarria Miguel Ángel Manso 1 Elementos Activity Componente con el cual el usuario interactúa Intents Mensajes
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN ANDROID. Duración en horas: 60 OBJETIVOS DEL CURSO
INTRODUCCIÓN A LA PROGRAMACIÓN ANDROID Duración en horas: 60 OBJETIVOS DEL CURSO A lo largo de 22 temas se desarrollan ejemplos teórico-prácticos de casi todos los conceptos necesarios para comprender
Más detallesExperto en Desarrollo de Aplicaciones para Dispositivos Móviles Android avanzado
Android avanzado Sesión 3: Servicios 2012-2013 Depto. Ciencia de la Computación e IA Puntos a tratar Servicios propios Ciclo de vida Iniciar tras el arranque Servicios y AsyncTask Broadcast Receiver Pending
Más detallesCrear un Splash-Screen
Crear un Splash-Screen El splashscreen es una pantalla que carga justo cuando se abre la aplicación y que generalmente tiene algún aviso que indica al usuario que algo está sucediendo mientras se carga
Más detallesAndroid avanzado. Sesión 5: Notificaciones. Experto en Desarrollo de Aplicaciones para Dispositivos Móviles
Android avanzado Sesión 5: Notificaciones 2012-2013 Depto. Ciencia de la Computación e IA Puntos a tratar Notificaciones Toast Personalización Notificaciones de la Barra de Estado Configuración y uso Cuadros
Más detallesSALVADOR GÓMEZ OLIVER
SALVADOR GÓMEZ OLIVER WWW.SGOLIVER.NET DOCUMENTO DE MUESTRA Este documento es tan sólo un fragmento de muestra del Curso completo de Programación en Android de sgoliver.net, al que podéis acceder de forma
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN ANDROID
INTRODUCCIÓN A LA PROGRAMACIÓN ANDROID Descripción del curso: A lo largo de 22 temas se desarrollan ejemplos teórico-prácticos de casi todos los conceptos necesarios para comprender la estructura Android
Más detallesEspecialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles. Plataforma Android. Sesión 1: introducción a Android
Plataforma Android Sesión 1: introducción a Android 2011 2012 Depto. Ciencia de la Computación e IA Puntos a tratar Aplicaciones Android El archivo Manifest Ciclo de ejecución de aplicaciones Recursos
Más detallesDesarrollo de Apps para Android
Desarrollo de Apps para Android Referencia JJD 310 Duración (horas) 24 Última actualización 8 marzo 2018 Modalidades Presencial, OpenClass, a medida El objetivo del curso es aportar a los alumnos los conocimientos
Más detallesAndroid y Recursos. Android R.java (fichero)
Cuando uno empieza a desarrollar en Android una de las mayores dudas con las que se encuentra es como funciona el fichero R.java que es generado automaticamente por el compilador. Android y Recursos Para
Más detallesImportar y exportar aplicaciones Para importar proyectos de Android a Android studio
Importar y exportar aplicaciones Para importar proyectos de Android a Android studio Buscar la aplicación en el repositorio: Github, Bitbucket, GoogleCode, etc. Importar en Android Studio Corregir errores
Más detallesProgramando para Android: una sencilla aplicación
Programando para Android: una sencilla aplicación Java, Android, Apps Vamos a hablar sobre como programar una aplicación para un dispositivo con Android que se va a tratar de una sencilla calculadora.
Más detallesCrear listas personalizadas en Android
Crear listas personalizadas en Android Introducción Bienvenidos a la sección de programación Android, hoy voy a explicar cómo crear listas personalizadas en Android. Las listas en Android son elementos
Más detallesINICIACIÓN A LA PROGRAMACIÓN PARA ANDROID
INICIACIÓN A LA PROGRAMACIÓN PARA ANDROID 3.1 UI Interfaz de usuario 3 Interfaz de usuario Representación gráfica de nuestra app. Botones, imágenes, campos de texto, Contenida en res/layout. 4 Interfaz
Más detallesSesión 4. Interfaz de Usuario en Android. Ing. Edwin Andrés Cubillos Vega Msc. Company LOGO
Sesión 4. Interfaz de Usuario en Android Ing. Edwin Andrés Cubillos Vega Msc. Company LOGO Contenido Clase View Creación de una vista Layout TextView Button Contenido Clase View Creación de una vista Layout
Más detallesProgramación en Android
Programación en Android Programa de Estudio Programación en Android Aprende a desarrollar APPS para Android. Construye aplicaciones para Tablets, Smartphones o GPS y distribúyelas a través de Google Play.
Más detallesEjercicios - Introducción al diseño de interfaces gráficas en Android
Ejercicios - Introducción al diseño de interfaces gráficas en Android Índice 1 LinearLayout (0.6 puntos)...2 2 Colores (0.6 puntos)... 2 3 Puzle (0.6 puntos)...3 4 Ciudades (0.6 puntos)...4 5 Calculadora
Más detallesEjercicios - Introducción a Android
Índice 1 Nuestra primera aplicación Android (0.8 puntos)... 2 2 Depuración en Android por medio de LogCat (0.8 puntos)...3 3 Estados de ejecución (0.8 puntos)... 6 4 Esperando el resultado de otra actividad
Más detallesIntroducción a la programación Android. Programación III - 6to año Escuela Técnica ORT Leo Lob -
Introducción a la programación Android Programación III - 6to año Escuela Técnica ORT - 2016 Leo Lob - leo@lob.com.ar Estructura de un proyecto Android Estructura de un proyecto Android Carpeta src Carpeta
Más detallesALMACENAMIENTOS DE DATOS EN ANDROID CON SQLITE
SQLite M.Sc. Reynaldo Zeballos ALMACENAMIENTOS DE DATOS EN ANDROID CON SQLITE En este ejercicio vamos a crear una tabla TELEFONOS para la base de datos GUIATEL. Para lo cual utilizaremos SQLite que viene
Más detallesAntes que nada se debe crear un proyecto, en este ejemplo se llama KaaxTik.
1 Menú lateral Antes que nada se debe crear un proyecto, en este ejemplo se llama KaaxTik. 1.- Comencemos por el build.gradle(module:app) y agregamos las dependencias, las versiones dependerá de las que
Más detalles100x70 - PNG 24x24 - PNG
1 Menú lateral Antes que nada se debe crear un proyecto, en este ejemplo se llama Tsikbal. 1.- Comencemos por el build.gradle(module:app) y agregamos las dependencias, las versiones dependerá de las que
Más detallesAndroid y Java para Dispositivos Móviles
Android y Java para Dispositivos Móviles Sesión 10: Interfaz de usuario Android y Java para Dispositivos Móviles 2010 Depto. Ciencia de la Computación e IA Interfaz de usuario-1 Puntos a tratar Views Layouts
Más detallesDesarrollo de aplicaciones para dispositivos móviles (5)
1 Desarrollo de aplicaciones para dispositivos móviles (5) M.C. Ana Cristina Palacios García 3 Kernel de Linux: Incluye drivers del hardware, manejo de procesos y de memoria, seguridad, red y manejo de
Más detallesIntroducción a la programación de aplicaciones con Android. Fernando Pérez Costoya
Introducción a la programación de aplicaciones con Android Fernando Pérez Costoya fperez@fi.upm.es Introducción Sistema operativo para móviles Basado en Linux Entorno de desarrollo de apps móviles Basado
Más detallesAndroid TAG y el principio DRY
Android es una plataforma de desarrollo que empieza a tener el sobrenombre de INFINITA en cuanto a las cosas que se pueden hacer, conjunto de APIs soportadas etc. Sin embargo al ser tan grande muchas veces
Más detallesPractica. Material Design. lunes 10 de octubre de 16
Practica Material Design Una aplicación basada en material design A partir de la versión 5.0 de Android (API 21), se introduce Material Design. Se trata de una guía para el diseño visual de las aplicaciones,
Más detallesProgramación Android. Alejandro Alcalde. elbauldelprogramador.com
Programación Android Alejandro Alcalde elbauldelprogramador.com Copyright c 2013 Alejandro Alcalde P L A TEX. Programación Android por Alejandro Alcalde se encuentra bajo una Licencia Creative Commons
Más detallesTutorial brújula controlada por voz
Nuevos Paradigmas de Interacción (2015-2016) Grado en Ingeniería Informática Universidad de Granada Tutorial brújula controlada por voz Pedro Antonio Ruiz Cuesta Ignacio Martín Requena 8 de febrero de
Más detallesPatricio Olivares. 25 de abril de 2017
: : Entorno 25 de abril de 2017 Table of contents : : Entorno 1 2 3 : 4 : Entorno 5 6 La telefonía móvil ha cambiado radicalmente la forma en que nos comunicamos. Con el creciente uso de los smartphones,
Más detallesCurso de programación en Android. 19/Junio/2012 Ramón Alcarria Augusto Morales
Curso de programación en Android Ramón Alcarria Augusto Morales Repaso conceptos básicos Arquitectura de Android Elementos principales: Activity, Views, Intents, Services, Notifications, ContentProviders
Más detallesExamen Teórico. Convocatoria de Febrero de 2015
Examen Teórico Convocatoria de Febrero de 2015 Nombre: DNI: Grupo: 1. Contesta de forma razonada a las siguientes cuestiones relacionadas con los ficheros.jar: a) Para qué se utilizan los ficheros con
Más detallesCODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web
CODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web I. Alcances del Proyecto a. Ide Eclipse Indigo 3.7 b. Api 10-17, Versión Android 2.3.3 A 4.2.2 c. Jdk 1.6 II. Conceptos Relacionados
Más detallesInterfaz de usuario Layout Vistas Adaptadores Eventos de interacción Estilos y temas
Interfaz de usuario Layout Vistas Adaptadores Eventos de interacción Estilos y temas Interfaz de usuario Layout Vistas Adaptadores Eventos de interacción Estilos y temas Activity [Form] Pantalla que se
Más detallesCursos de orientación profesional
Cursos de orientación profesional ACCIONES COFINANCIADAS CON FONDOS COMUNITARIOS DEL FONDO SOCIAL EUROPEO, A TRAVÉS DEL PROGRAMA OPERATIVO FONDO SOCIAL EUROPEO DE CANARIAS 20072013 CON UN PORCENTAJE DE
Más detallesEjercicio 3. Manejo de la Vista y Eventos en Android Ejercicio 3 Curso de Android con Java Derechos Res Dere e c rvados hos Res Gl e obal rva
Android Con Java Ejercicio 3 Manejo de la Vista y Eventos en Android Objetivo del Ejercicio El objetivo del ejercicio es entender cómo controlar la Vista desde código Java, así como responder a eventos
Más detallesANDseries Autor: Miró Monleón, Edgar
ANDseries Autor: Miró Monleón, Edgar Qué hace la aplicación? Llevar un seguimiento de las series que el usuario está siguiendo, así como la última temporada/capítulo vistos. Ofrece al usuario una base
Más detallesEspecialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles. Plataforma Android
Plataforma Android Sesión 2: Intents y navegación entre actividades 2011 2012 Depto. Ciencia de la Computación e IA Puntos a tratar Intents Introducción Lanzar actividades Navegación Tareas launchmode
Más detallesEjercicios - Menús, listas y barras de progreso
Ejercicios - Menús, listas y barras de progreso Índice 1 Barra de progreso lineal (0.5 puntos)... 2 2 Selección de color (0.5 puntos)... 3 3 Lista de tareas (0.5 puntos)...4 4 Modificando el aspecto de
Más detallesMANIPULACIÓN DE VISTAS (VIEW)
MANIPULACIÓN DE VISTAS (VIEW) Unidad III.- Desarrollo de la interfaz de usuario. Desarrollo de aplicaciones III Alfonso Felipe Lima Cortés www.afelipelc.mx View Provides classes that expose basic user
Más detalles01.1 Instalación de Android Studio
Instituto Politécnico Nacional Centro de Estudios Científicos y Tecnológicos núm. 9 Laboratorio de proyectos de tecnologías de la información iv Prof. Emmanuel Oropeza Gonzalez 01.1 Instalación de Android
Más detallesMANUAL DE USUARIO POS TOOLS.
MANUAL DE USUARIO POS TOOLS. INDICE 1. Qué es la NUBE? 3 2. Qué son los SERVICIOS EN LA NUBE? 3 3. Diferenciar: POS Tools - postools.azurewebsites.net 4 4. Registro en postools.azurewebsites.net 5 5. Crear
Más detallesIngeniería del Software Separación entre Presentación y Lógica del Negocio
Introducción En este laboratorio desarrollaremos una aplicación que verifica si una cuenta y un password son correctos. En dicha aplicación la presentación y la lógica del negocio se definirán en dos capas
Más detallesBASIC TREKKING Android: Fundamentos de Programación
Android: Fundamentos de Programación Cristina López Tarrida Julio-Noviembre 2015 Nombre de la aplicación: Basic Trekking. Autor: López Tarrida, Cristina. Qué hace la aplicación: Versión para móviles Android
Más detallesANDROID INTERMEDIO - E-LEARNING - EN LÍNEA
IMECAF México, S.C. Instituto Mexicano de Contabilidad, Administración y Finanzas Nombre del Curso ANDROID INTERMEDIO - E-LEARNING - EN LÍNEA Objetivo La ventaja de Android frente a otros sistemas de desarrollo
Más detallesLayouts en Android LSUB, GSYC, URJC
Layouts en Android LSUB, GSYC, URJC Layouts Son Views Para organizar la pantalla Organizados en una jerarquía Layouts View ViewGroup LinearLayout... GridLayout TableLayout TableRow Layouts Normalmente
Más detallesCurso de iniciación a Java para Android (60 horas)
Máster en Android (AM) (200 horas) Curso de iniciación a Java para Android (60 horas) Objetivo El objetivo del curso es presentar al alumno el lenguaje de programación Java, partiendo de cero, ofreciéndole
Más detallesUnidad 3. PrimerProyecto. Nuestra primera aplicacio n Android
Unidad 3. PrimerProyecto. Nuestra primera aplicacio n Android Jose A. Montenegro Dpto. Lenguajes y Ciencias de la Computacio n ETSI Informa tica. Universidad de Ma laga monte@lcc.uma.es 14 de abril de
Más detallesActualización de la Práctica Programación del sistema de simulación gráfica de robots VRS a la versión Visual Studio 2008
Departamento de Ingeniería de Sistemas y Automática Universidad Politécnica de Valencia Actualización de la Práctica Programación del sistema de simulación gráfica de robots VRS a la versión Visual Studio
Más detallesEjercicios de fragmentos y compatibilidad
Ejercicios de fragmentos y compatibilidad Índice 1 Lector de noticias (1,5 puntos)... 2 2 Carga de noticias (1 punto)... 3 3 Servicios de Google (0,5 puntos)... 3 Antes de empezar a crear los proyectos,
Más detallesBEGINNERS CURSO TALLER: años. INICIO: 15 DE SETIEMBRE Viernes de 19:00 a 22:00h y sábados 09:00 a 12:00h
años INICIO: 15 DE SETIEMBRE Viernes de 19:00 a 22:00h y sábados 09:00 a 12:00h ANDROID FOR 1. Acerca del Curso En este curso construiremos nuestra primera aplicación para Android, aprendiendo sobre Layouts,
Más detallesAplicación para clientes SHOP APP
Aplicación para clientes SHOP APP Instrucciones de instalación y uso Información general La aplicación ShopApp le permite conectarse con múltiples empresas para ver sus catálogos y realizar pedidos. Para
Más detallesDesarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android Sesión 1: Introducción a Android Introducción a Android-1 Puntos a tratar Dispositivos móviles Historia de Android Desarrollo de aplicaciones Emulador AndroidManifest.xml
Más detallesPráctica 4: Mi agenda personal
Práctica 4: Mi agenda personal Objetivo: En esta práctica se introducirá en la utilización de JavaScript para dotar de interactividad nuestras páginas web. Se evaluará el uso de arrays, funciones y demás
Más detallesDesarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android Sesión 2: Interfaz de usuario Desarrollo de Aplicaciones para Android Depto. Ciencia de la Computación e IA Interfaz de usuario-1 Puntos a tratar Views Layouts Eventos
Más detallesInterfaces de usuario [Desarrollo de aplicaciones para Android]
Interfaces de usuario [Desarrollo de aplicaciones para Android] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-P Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Interfaces de Usuario
Más detallesEjercicios - Intents y navegación entre actividades
Ejercicios - Intents y navegación entre actividades Índice 1 Intents implícitos (0.8 puntos)...2 2 Intents explícitos (0.8 puntos)... 3 3 Navegación (0.8 puntos)...4 4 Actividades en diferentes tareas
Más detallesFicheros y acceso a datos - Ejercicios
Ficheros y acceso a datos - Ejercicios Índice 1 Escribir en un archivo de texto...2 2 Crear y utilizar un DataHelper para SQLite...2 3 Proveedor de contenidos propio... 3 4 Por qué conviene crear proveedores
Más detallesGuía Rápida. Gestor Aplicaciones
Guía Rápida Gestor Aplicaciones QUÉ ES EL GESTOR DE APLICACIONES? El Gestor de Aplicaciones CAI Sistemas Informáticos, es una herramienta muy útil que le permitirá mantener su escritorio limpio y ordenado.
Más detallesServicios Web Android
Índice 1 Introducción...2 2 Ejercicios... 2 2.1 Listado de libros a partir de servicios web (0,5 puntos)... 2 2.2 Obteniendo las portadas de los libros (0,5 puntos)...3 2.3 Añadir un libro (0,5 puntos)...5
Más detallesProgramación multimedia y dispositivos móviles. Objetos Parcelables
Programación multimedia y dispositivos móviles Objetos Parcelables Recordando Para enviar un ArrayList por medio de un Intent Para enviar un ArrayList por medio de un Intent tenemos dos opciones; o Método
Más detallesIntroducción a la programación de aplicaciones con Android. Fernando Pérez Costoya
Introducción a la programación de aplicaciones con Android Fernando Pérez Costoya fperez@fi.upm.es Introducción Sistema operativo para móviles Basado en Linux Entorno de desarrollo de apps móviles Basado
Más detallesencontrol widget Jordi Tejedo Jiménez Máster Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles
Jordi Tejedo Jiménez Máster Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles Francesc D Assís Giralt Queralt Carles Garrigues Olivella 03/01/2018 Esta obra está sujeta a una licencia
Más detallesDesarrollo de apps para móviles Android. Conceptos básicos de las aplicaciones Android
Desarrollo de apps para móviles Android Conceptos básicos de las aplicaciones Android Modelo vista controlador (MVC) En Android se utiliza el patrón de arquitectura llamado modelo vista controlador. Este
Más detalles2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
Más detallesINSTALACIÓN SISTEMA FACILAUTO CLASE (ALUMNO)
INSTALACIÓN SISTEMA FACILAUTO CLASE (ALUMNO) El programa FacilAUTO Clase es el que utilizan los alumnos para realizar su formación. La instalación es sencilla y habrá que seguir unos pasos. En función
Más detallesAndroid y Java para Dispositivos Móviles
Android y Java para Dispositivos Móviles Sesión 9: Introducción a Android Introducción a Android-1 Puntos a tratar Historia Desarrollo de aplicaciones Emulador AndroidManifest.xml Externalizar recursos
Más detallesANDROID BÁSICO - E-LEARNING - EN LÍNEA
IMECAF México, S.C. Instituto Mexicano de Contabilidad, Administración y Finanzas Nombre del Curso ANDROID BÁSICO - E-LEARNING - EN LÍNEA Objetivo Los dispositivos móviles nos acompañan en el día a día
Más detallesEjercicio 1 (proyecto prlistas, paquete listas)
PRÁCTICA 3 Curso 2004-05 En esta práctica construiremos y usaremos dos paquetes: el primero, listas, que implementa listas genéricas y el segundo, colas, que implementa colas y colas de prioridades genéricas.
Más detallesPreguntas frecuentes
Preguntas frecuentes Cómo consulto mis bandejas favoritas desde GEX? A continuación vamos a ver cómo consultar bandejas en GEX. Accedemos al menú Gestión -> Selección de Expedientes por Bandejas. La pantalla
Más detallesManejadores en Android LSUB, GYSC, URJC
Manejadores en Android LSUB, GYSC, URJC Botones Vamos a hacer una aplicación con un grupo de botones Layout LinearLayout Orientación vertical Con dos grupos de botones de radio de orientación horizontal
Más detallesCurso Android. ADT Bundle. Android Developer Tools. Entorno de trabajo Toolbar principal SDK Manager. Emulador de Android. Crear proyecto Android
Curso Android ADT Bundle o Instalación o SDK Manager o Eclipse Android Developer Tools o Workspace o Seleccionando un Workspace Entorno de trabajo Toolbar principal SDK Manager o Android SDK Manager o
Más detalles1 Menú lateral. 3.- Estas imágenes deber ser copiadas y pegadas en la carpeta drawable del proyecto
1 Menú lateral Antes que nada se debe crear un proyecto, en este ejemplo se llama KaaxTik. 1.- Comencemos por el build.gradle(module:app) y agregamos las dependencias, las versiones dependerá de las que
Más detallesAUCA Procuradores. Manual de Usuario para Colegio
Manual de Usuario para Colegio Página: 2 13 INDICE INTRODUCCIÓN... 3 1 REQUISITOS PREVIOS... 3 2 ACCESO A AUCA PROCURADORES... 4 3 FUNCIONALIDADES DE AUCA PROCURADORES... 5 2.1 ACCESO A UN SITIO WEB A
Más detallesManual de Usuario. Funcionalidades Genéricas de las pantallas de SÒSTRAT
de Funcionalidades Genéricas de las pantallas de SÒSTRAT Tabla de contenido 1. INTRODUCCIÓN... 2 2. FUNCIONALIDADES DEL SISTEMA... 3 Funcionalidades sobre "Trabajar Con"... 3 Funcionalidad de Nuevo Registro...
Más detallesAplicación COAC MURCIA CRM Módulo Calendario. Módulo Calendario. 1
Módulo Calendario 1 www.audalabs.net Contenido INTRODUCCIÓN... 3 MÓDULO CALENDARIO... 4 Añadiendo un Evento al Calendario... 7 Añadiendo una Tarea al Calendario... 10 Compartir Calendarios... 11 Compartición
Más detallesMASTER DESARROLLO DE APLICACIONES ANDROID
MASTER DESARROLLO DE APLICACIONES ANDROID TEMARIO MODULO I La plataforma Android Origen Google Play Creación de una cuenta de desarrollador Publicación de una aplicación Seguimiento y actualización de
Más detalles1. INTRODUCCIÓN 5 5. DESINSTALACIÓN DEL ASISTENTE DE CONEXIÓN WIRELESS 21
1. INTRODUCCIÓN 5 2. INSTALACIÓN DEL ASISTENTE DE CONEXIÓN WIRELESS 7 2.1 INICIO DE LA INSTALACIÓN 8 2.2 CONTRATO DE LICENCIA 8 2.3 DIRECTORIO DE INSTALACIÓN 8 2.4 INSTALACIÓN 9 2.5 FINALIZACIÓN DE LA
Más detallesCrear una extensión desde 0 en gvsig. Jorge Piera
Crear una extensión desde 0 en gvsig Jorge Piera (piera_jor@gva.es) 1 Motivación Vamos a crear una extensión desde 0 La extensión creará una capa vectorial donde dibujaremos polígonos por código Los polígonos
Más detallesINSTALACIÓN SISTEMA FACILAUTO CLASE (ALUMNO)
INSTALACIÓN SISTEMA FACILAUTO CLASE (ALUMNO) El programa FacilAUTO Clase es el que utilizan los alumnos para realizar su formación. La instalación es sencilla y habrá que seguir unos pasos. En función
Más detallesAndroid 7 Principios del desarrollo de aplicaciones Java
La plataforma Android 1. Presentación 13 2. Origen 14 3. Google Play 15 3.1 Creación de una cuenta de desarrollador 16 3.2 Publicación de una aplicación 17 3.3 Seguimiento y actualización de una aplicación
Más detallesDESARROLLO DE APLICACIONES EN ANDROID
DESARROLLO DE APLICACIONES EN ANDROID Abraham Gutiérrez Rodríguez Abraham Gutiérrez Rodríguez UPM 2014 1 Las aplicaciones de Android están escritas en el lenguaje de programación Java. Las herramientas
Más detallesActivities/Intents en Android LSUB, GSYC, URJC
Activities/Intents en Android LSUB, GSYC, URJC Activity Una unidad de ejecución Para organizar una pantalla Ejecuta no mucho tiempo Y se comunica con otras Arranca otras Intent Una operación que queremos
Más detallesUSO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON
USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON Una aplicación sin usar Formulario A continuación vamos a desarrollar una aplicación sencilla que permita calcular el área del triángulo dado los valores
Más detallesDesarrollo de aplicaciones de acceso a base de datos con JBuilder 7
Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7 Este artículo trata sobre el desarrollo de aplicaciones de acceso a base de datos con la herramienta JBuilder7. Tras una breve introducción,
Más detallesSistema de análisis de vídeo basado en tecnología IP
Sistema de análisis de vídeo basado en tecnología IP 1 Instalación...2 2 Registro...4 3 Configuración...5 3.1 Perfiles... 6 3.1.1 Regiones... 8 3.1.2 Variables... 9 3.1.3 Testear variables... 11 3.2 Configuración
Más detallesTutoriales y Guías de uso con Orientaciones Pedagógicas Entorno Virtual de Aprendizaje Plataforma Blackboard ORACIÓN CONFUSA
Herramientas de Evaluación Para crear Evaluaciones, ingrese a Blackboard con su nombre de usuario y contraseña de profesor, ya en la página principal, en el área Mis Cursos, seleccione la asignatura y
Más detalles18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Más detalles