miércoles, 21 de septiembre de 2011

Ejemplo con ViewPager en Android

Hola que tal a todos, últimamente he estado un poco ausente por varios proyectos y ocupaciones pero ya espero estar de vuelta posteando seguido. En esta ocasión les quiero compartir un ejemplo de como utilizar el ViewPager en una aplicación android. Esta vista se ha vuelto muy popular últimamente dentro de Android, el nuevo Market la utiliza para cambiar entre secciones, la aplicación Talk la utiliza para cambiar entre chats activos, entre otros; si no están familiarizados con esta vista o simplemente no la reconocen por el nombre solo basta con mirar este post y ver la ultima imagen del Android Market. ViewPager es esa vista que nos permite hacer un swap con nuestro dedo (deslizarlo de lado a lado de la pantalla) y cambiar entre vistas activas en la aplicación.

Bueno ahora si manos a la obra, lo primero que tenemos que tomar en cuenta es que ViewPager es una clase que hereda de Vista, se puede agregar a los archivos xml de layout de android, mas sin embargo no se encuentra dentro de las clases base de Android OS, esta clase se introdujo con la llegada de las actualizaciones de HoneyComb y los ingenieros de Google la agregaron dentro del paquete de compatibilidad para versiones anteriores. Por lo tanto es necesario que utilicemos nuestro AVD Manager e instalar el paquete de compatibilidad desde el repositorio de android. Una vez que este instalado solo es necesario configurar nuestro proyecto para que utilice este paquete. Para hacer esto solo damos click secundario en el proyecto de eclipse y dentro de Android Tools damos click en Add Compatibility Library.


Una vez que nuestro proyecto este configurado ya podemos hacer uso de esta clase dentro de nuestros archivos xml de layout, pero recuerden que como esta no es una clase del sistema base de android es necesario agregarla a nuestros xml como si fuera una vista personalizada en android. Por lo tanto nuestro archivo de layout de ejemplo (main.xml) quedaría de esta manera.


La clase ViewPager requiere un adaptador (una clase que herede de ViewPagerAdapter) el cual sera encargado de manejar las vistas y la interacción del usuario con cada una de las "paginas", lo mas sencillo de implementar es una clase que extienda de FragmentPagerAdapter la cual lanzara el Fragment necesario para  cada pagina cuando sea necesario, con esto podemos manejar dentro de nuestros fragmentos todas las acciones del usuario que se generen dentro de la pagina activa en la aplicación. Para este ejemplo se creo una clase llamada MyFragmentPagerAdapter el cual realizara la tarea de almacenar fragmentos y regresar el indicado cuando la aplicación lo requiera. Nuestra clase adaptador se ve así, lo único que hace es almacenar Fragmentos en una lista y regresar los cuando sea necesario.




Este adaptador se llena con diferentes fragmentos, los cuales lo único que harán sera desplegar un componente reloj con un color de fondo definido. Para esto vamos a crear una clase nueva que extenderá la clase Fragment y un nuevo archivo layout el cual sera desplegado en nuestro fragmento, este archivo se utilizara en el método onCreateView del fragmento para generar y almacenar la vista que sera desplegada en cada una de las paginas. Estos archivos se ven de la siguiente manera.


Y ya por ultimo en nuestra actividad principal, la cual debe de extender de FragmentActivity en lugar de Activity solo es necesario crear los fragmentos necesarios y el adaptador para establecerlo en nuestro layout principal. Nuestra clase principal se debe de ver de esta manera.

Se puede observar que lo único que hace nuestra clase es establecer nuestro main layout (main.xml), luego retrae el ViewPager de nuestra vista para después crearle un adaptador con 3 nuevos fragmentos y establecerlo al Pager con el método setAdapter(..). Con esto la secuencia que seguirá la aplicación es crear cada uno de los fragmentos (PlainColorFragment) y cuando el Pager vaya a desplegar una pagina llamara al método getView del fragmento correspondiente (recuerden que la vista ya ha sido creada con el método noCreateView) para ser desplegado dentro de la pagina.

Con estas sencillas clases ya podemos hacer Swap con nuestro dedo e ir cambiando de vistas de forma dinámica y entre diferentes funcionalidades de nuestra aplicación. Al final les dejo las imágenes de como se ve esta aplicación funcionando en el android emulator y también el link hacia el repositorio de github desde donde pueden descargar el código completo para que lo prueben y extiendan la aplicación a su gusto. En posts posteriores extenderemos esta aplicación para manejar eventos de usuario y un poco mas de funcionalidad.

Un saludo a todos y espero que este post sea de ayuda.

Código Fuente completo: https://github.com/ti3r/view_pager_test

Imágenes del ejemplo:



miércoles, 31 de agosto de 2011

Actualizacion Gingerbread en Droid 2 Global

Hola que tal, ahora les quiero compartir como actualizar nuestro motorola droid 2 global a la versión 4.5.606.A956.Verizon.en.US, tanto relajo para decir que es la actualización tan esperada y que esta basada en Android Gingerbread. Muchas gracias a Juan Alberto Cruz Cruz por esta al pendiente del blog y pasarme el tip sobre la salida de esta versión de una forma no oficial, los rumores dicen que alguien logro obtener este archivo el cual te permite actualizar tu teléfono desde la versión 330 al nuevo sistema basado en Gingerbread.

La primera mala noticia, si tienes instalado algún custom room o tu teléfono esta rooteado la actualización no se va a poder completar. Si eres el afortunado de tener tu teléfono en estado original la actualización sera muy sencilla, solo sigue estos pasos.

1. Descarga el archivo antes mencionado y colócalo en tu sdcard con el nombre update.zip.
2. Reinicia tu teléfono presionando la tecla "X" del teclado físico antes de que inicie hasta entrar al menú de mantenimiento, una pantalla con un triangulo y un signo de exclamación amarillo debe de aparecer. Si los elementos del menú no aparecen presiona la tecla de búsqueda (la lupa que se encuentra en el teclado) para que el menu se haga visible.
3. Selecciona Data Factory Reset y luego Clear Cache para limpiar el sistema. Para moverse entre los distintos elementos del menú utiliza las teclas de volumen y para seleccionar utiliza la tecla de cámara.
4. Una vez que todo el sistema este limpio selecciona install update.zip y la actualización comenzara a aplicarse.

Cuando todo este listo reinicia el teléfono si es que no lo hace automáticamente y  listo tendrás la nueva versión del sistema basada en Gingerbread.

Si tu eres de las personas que jugo con el D2G, le aplicaste root, instalaste custom roms como hexen, fission, etc. Entonces esta actualización no se puede aplicar así de sencillo, como estos roms cambian el código de verificación del sistema al tratar de aplicar el update este falla con un assertion error.  Así que aquí esta la manera de volver al sistema original de Verizon para que puedan aplicar el update con los pasos de arriba.

1. Lo primero que deben de hacer es bajar la imagen sbf del sistema de Verizon, esta imagen la puedes encontrar en modmymobile.
2. Luego es necesario flashear esta imagen al teléfono utilizando RSD Lite o sbf_flash en linux o mac. Aquí es donde esta el truco, baje varias versiones de RSD lite y no pude flashear el teléfono, me mostraba un error sobre "chipset not supported" entonces tuve que hacerlo con sbf_flash utilizando fedora, solo baje el programa desde el link y lo utilice en mi sistema linux así que es buena hora de ir instalando linux si es que no lo haz echo.
3. Pon la imagen sbf y sbf_flash en el mismo directorio y reinicia el teléfono en modo bootloader, para hacer esto solo apágalo y prendelo presionando las dos teclas de volumen al mismo tiempo. Una pantalla negra deberá de aparecer.
4. Luego como como usuario root debes de correr los siguientes comandos en el directorio donde guardaste el programa y el archivo sbf:
        chmod +x sbf_flash
        ./sbf_flash .sbf
5. La consola comenzara a escribir la imagen en el teléfono y la pantalla del teléfono deberá de cambiar a una leyenda de instalando software.
6. Una vez que la instalación termine el teléfono reiniciara y el sistema original de verizon estará listo. Ya teniendo el sistema original ahora si estamos listos para seguir los pasos de arriba para actualizar a gingerbread.

Solo como una observación, una vez que termine de instalar el sbf original el sistema no podía iniciar, se quedaba trabado en la pantalla de inicio donde aparece el ojo de droid y continuaba reiniciándose automáticamente, si es que esto te ocurre a ti solo es necesario limpiar el cache y hacer un factory reset y limpiar el cache del teléfono siguiendo los pasos 1 a 3 de la parte de arriba, con esto el teléfono iniciara normalmente.

Por el momento lo que he podido observar de esta actualización es que no cuenta con acceso de root, así que va a ser necesario hacerlo root, luego posteo como me fue con ese proceso, la imagen trae instalado la nueva versión de blur y del android market y parece que el tiempo de vida de la batería es mejor.  Voy a continuar probando el dispositivo para ver si encuentro algún desperfecto en la imagen pero hasta el momento todo funciona muy bien, la cámara, GPS, wireless, todo; existen algunas ocasiones en las que la interfaz no es muy fluida  pero en general el performance es mejor que anteriormente. Aun no termino de acostumbrarme al nuevo menú pero en general el sistema es bueno. Aquí les dejo unas imágenes de como se ve mi equipo con la nueva imagen.

Saludos a Todos









Fuente del rom: http://rootzwiki.com/showthread.php?3406-Gingerbread-leak-D2G-Updated-to-4.5.607!

viernes, 19 de agosto de 2011

Motorola Droid 2 Global, Hexen y Titanium Backup


Hola que tal a todos, primero que nada una disculpa por estar ausente durante algún tiempo, estaba concentrado realizando un ejercicio de certificación para Java, pero esa es historia para otra ocasión. Ya había escrito sobre la actualización del D2G a Android 2.3 y toda la historia y telenovela que se ha vuelto la tan esperada actualización oficial, pero aun no llega. La verdad es que en las ultimas semanas el desempeño del teléfono bajo bastante, tal vez por todas las aplicaciones que le instale, el tiempo de uso o no se que pero al final no lograba tener mas que 6 u 7 horas de batería, las llamadas se iniciaron a cortar y a no poder iniciar y si quería lanzar una aplicación el tiempo de respuesta dejaba mucho que desear. Aun cuando la solución pudo haber sido un Factory Reset no me convencía la idea de quedarme con lo mismo, así que decidí probar Hexen ROM, aunque esta basado en Froyo, con la desaparición de teamdefuse la actualización a gingerbread se ve cada vez mas difícil.


La instalación fluyó sin ningun problema utilizando Droid 2 Bootstrapper, aquí les dejo la pagina donde pueden encontrar las instrucciones de como instalarlo o si alguno no ha utilizado esta aplicación puede consultar mi post anterior de como hacerlo solo no utilizar el Fission Manager. Lo que les recomendaría antes de realizar un cambio de ROM, si no quieren perder sus aplicaciones y datos de usuario como lo quería yo, es utilizar la aplicación Titanium Backup, con ella pueden respaldar las aplicaciones que deseen y sus datos de usuario y luego restaurarlas en el nuevo ROM. Esto me ayudo para no perder mi avance en el ZENONIA 3 :-P un muy buen juego por cierto; muy recomendable. Pueden probar Titanium backup instalándolo desde el market o desde este link; o si conocen alguna otra aplicación buena para el mismo fin no se olviden de comentarla.


Lo primero que note una vez que el ROM estaba listo fue el tiempo de respuesta, con tan solo lanzar el launcher se puede observar que las animaciones son mas fluidas y los gestos son mas suaves. Hexen trae instalado Launcher Pro en su versión gratuita lo cual no te permite cambiar el tamaño de los widgets del escritorio pero si están dispuestos a pagar $3.5 USD pueden disfrutar de la versión completa. O probar diferentes Launchers como lo estoy haciendo yo, algo que es bueno y que viene por defecto es que puedes cambiar los iconos o el numero de escritorios y personalizar tu desktop a como mas te guste; solo es necesario acceder a las preferencias del launcher con la tecla de menú. Tambien puedes cambiar los iconos del Launcher que están en la parte inferior y muchos tweeks mas.








La segunda cosa que se nota después de un tiempo de uso es el tiempo de vida de la batería, llevo varios días probando el rom y en promedio la batería me ha durado de un un día a un día y medio, osea mas de 24 horas consecutivas. En algunas ocasiones tuve que cargar el celular al llegar a mi casa por la noche pero aun así son 13 o 14 horas de batería.


El music player tambien es distinto y la verdad es que si me gusta mas que el default de Motorola pero creo que en esta categoría cada quien tendrá su preferido. Por lo tanto a continuación les dejo la descripción de las aplicaciones que trae instaladas por defecto para que las revisen y me digan sus opiniones, la verdad es que este rom me ha gustado bastante y espero no tener que regresar al rom anterior hasta la actualización oficial a gingerbread.


Un saludo a todos






martes, 26 de julio de 2011

Nuevas Experiencias con Droid 2 Global

Hola que tal a todos, en esta ocasión les quiero compartir las ultimas noticias que he recibido con respecto al Droid 2 Global de Motorola. En una ocasión pasada les compartí que la gente de teamdefuse estaban trabajando en la nueva imagen de fusion basada en Android 2.3, pues esta opción creo que ha desaparecido, al menos por un tiempo. No se ha sabido nada de angdroid y el equipo en algún tiempo y su blog ha sido suspendido, así que este camino se ha vuelto incierto :( , creo que tendremos que esperar a la actualización oficial de Verizon para poder probar Gingerbread.


Con respecto al dispositivo, he notado que últimamente la batería dura mucho menos, con anterioridad lograba hacer que el telefono estuviera vivo de 7 am a 9 pm, mas sin embargo en el ultimo mes no logro obtener mas que 7 u 8 horas de batería, últimamente lo tengo que cargar a eso de las 2 o 3 de la tarde para que viva hasta en la noche. Las ultimas aplicaciones que he instalado son Google+ y huddle; por lo que he revisado en el detalle de batería los servicios que inician estas aplicaciones si duran corriendo y gastando batería mas de lo normal. Con lo que logre aumentar un poco la batería fue desactivando la opción de INSTANT UPLOAD de google+ ya que en algunas ocasiones era necesario que lo cargara al medio día o poco después.

Ahora estoy pensando seriamente en instalar un nuevo custom ROM para probar y ver como funciona en mi teléfono, la mala noticia es que fision rom manager lite ya no esta funcionando en mi teléfono, tal vez por que el espacio de team defuse esta caído. Intentare probar angel rom y les diré como me fue.

Si alguno de ustedes ha probado algún custom ROM que quieran compartir o algún otro problemilla o caso que les haya pasado con el celular no olviden comentar.

Un Saludo a Todos

martes, 12 de julio de 2011

Android Gingerbread en Droid 2 Global (la telenovela continua)

Hola que tal a todos, en esta ocasión les quiero compartir mas noticias relacionadas con la actualización a gingerbread para el Droid 2 global. En los últimos días tuve la oportunidad de viajar por los Estados Unidos a varias partes y por supuesto que no podía perder la oportunidad de pedir la actualización para el celular, aun y cuando no tenia una linea registrada con Verizon y no tenia señal de celular; me conectaba a las redes wireless y pedía la actualización a través del teléfono pero sin ningún éxito. Al parecer los servidores de Verizon aun no tienen la actualización lista y el roll out no ha comenzado, viaje por algunas ciudades del sur y norte de USA y en cada caseta de Verizon que veía preguntaba al encargado si tenia alguna noticia sobre el nuevo software; todos contestaban lo mismo, que ellos no estaban enterados de ninguna actualización y que debería preguntar en la linea de atención de Verizon.
Creo que la comunicación entre Verizon y la comunidad de D2G no es muy buena y algunos de nosotros ya nos estamos empezando a desesperar, la verdad es que gingerbread es muy buen sistema y creo que a todos nos gustaría probarlo en este gran dispositivo. 

Ahora "lo bueno dentro de lo malo", angdroid (desarrollador de team-defuse, creadores de Fission) se ha puesto las pilas y esta trabajando de nuevo. En un post en la pagina de team-defuse, anuncia la llegada de Fission ROM 3.0 basado en GB y el cual estará disponible para D2G, esperemos y no tarde mucho tiempo en liberar este sistema y no nos deje fuera como en la versión 2.5.7 ya que al parecer a la gente de Verizon le falta algún tiempo para liberar la actualización oficial. 


Si quieren conocer mas sobre Fission ROM visiten la pagina de team-defuse.
Un saludo a todos

lunes, 27 de junio de 2011

Android Gingerbread en Droid 2 Global (continuación)

Pues han pasado ya 2 semanas desde que Verizon anuncio que la actualización para el Motorola Droid 2 Global estaría disponible para los beta testers, mas sin embargo al parecer aun no ha llega esta actualización a ningún lado. Según varios comentarios la actualización tardaría de aquí a que se replique a todos los servidores pero aun no ha pasado, creo que fue una falsa emoción ya que varios comentarios dicen que el software aun no esta listo. Según Motorola, comenta en su foro, al parecer toda esta confusión se debe a ciertos twetts que nunca debieron salir a la luz y que aun no están seguros de cuando quedaría listo el release para este dispositivo.

Esperemos y la fecha tan esperada por muchos usuarios no se postergue demasiado.

lunes, 13 de junio de 2011

Android Gingerbread en Droid 2 Global


El día de hoy Verizon libero un comunicado diciendo que Android 2.3 (gingerbread) estará disponible para los usuarios del Motorola Droid 2 Global. La actualización sera enviada a los usuarios bajo el código Version.4.5.600.A956.Verizon.en.US y estará supuestamente limitada para usuarios inscritos al programa de pruebas, dentro de las ventajas anunciadas por Verizon en esta nueva versión, ademas de estar basada en Android 2.3 se encuentran:

  • Una administrador de descargas.
  • Nueva Interfaz de Usuario y esquema de colores.
  • Nueva barra de iconos
  • Grupos de Aplicaciones en el launcher
  • Cifrado de la informacion del Telefono y tarjeta SD
  • Mejoras en el bluetooth, estabilidad, calidad de llamadas GSM/UMTS y tiempo de vida de la batería

entre otras, esperemos y el tiempo de vida de la batería aumente considerablemente así como la calidad de las llamadas.
Hasta el momento Verizon ha liberado las instrucciones de como actualizar el teléfono OTA (over the air) y aun no ha liberado la actualización manual para el dispositivo, ademas de que en la pagina de Motorola no se encuentra rastro de esta actualización.
Esperemos y no pase mucho tiempo antes de que nosotros podamos recibir esta actualización, ya que es un sistema que se ha estado esperando con ansias por varios usuarios del teléfono.
A continuación les dejo links sobre los avisos de Verizon sobre la actualización y si alguno de ustedes logra recibir la actualización en los próximos días pasen la voz que yo así lo haré en cuanto pueda.

Saludos
http://support.vzw.com/pdf/system_update/droid_2_global.pdf
http://support.vzw.com/pdf/system_update/droid_2_global_instructions.pdf