miércoles, 23 de enero de 2013

Android Screenshot

Hola que tal a todos, Muy feliz año 2013 en esta ocasión les quiero compartir una pequeña aplicación para demostrar como obtener un screenshot o una captura de pantalla de nuestra aplicación. Antes que nada una disculpa por no haber escrito tan constantemente como en anteriores ocasiones pero me he enfocado en mi trabajo y otros proyectos personales.

El como obtener una copia de una vista en android es muy sencillo, básicamente cualquier componente que nosotros necesitemos podemos copiar su bitmap en un punto determinado lo cual nos dará una imagen de este componente en el tiempo. Esta función es aplicable para nuestra vista principal también la cual nos dará el screenshot completo. El método se llama getDrawingCache(), lo que en realidad pasa es que esta vista regresa el cache que se utiliza para ser dibujada en pantalla en un objeto Bitmap, normalmente este cache esta des-habilitado y la función regresara null pero lo unico que tenemos que hacer antes de llamar al método es habilitarlo con la función: setDrawingCacheEnabled(true). Este bitmap luego puede ser transformado a algún otro formato compreso como PNG o JPEG  y guardado en nuestra SD card o cualquier otra locación.

Nota no hay que olvidarnos que luego de terminar es bueno des-habilitar el cache de nuestra vista ya que si no estaremos utilizando memoria en nuestra aplicación que no es necesaria. Muy bien a continuación el código de las funciones para tomar la imagen, transformarla a formato JPEG y guardarla en la carpeta de la Camara.


public void takeScreenshot(){
View v = findViewById(R.id.rootLayout);
v.setDrawingCacheEnabled(true);
Bitmap bitmap  = v.getDrawingCache();
String dest = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_DCIM )
+File.separator+"Camera"+File.separator+"IMG_"+
new DateFormat().format("yyyyMMdd_hhmmss", new Date())
+".jpg";
Log.d(APP_TAG, "Writing to: "+dest);
File file = new File(dest);
try {
FileOutputStream stream = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 100, stream);
stream.flush();
stream.close();
} catch (IOException e) {
Log.e(APP_TAG, "Error taking screenshot.",e);
}finally{
v.setDrawingCacheEnabled(false);
}
}

Este pequeño tutorial lo desarrolle a petición de un compañero desarrollador que tenia algunas dudas con esta tarea. Espero y les sea de utilidad. Si tienen alguna otra duda o quieren que publique algún otro tipo de tutorial siempre son bien recibidos los comentarios o pueden mandarme un email a cualquier hora. Un saludo a todos y espero ya poder volver a escribir con un poco mas de regularidad.

P.D si desean el codigo completo de esta aplicacion pueden clonar el repositorio de github donde esta almacenada el link es: git://github.com/ti3r/screenshot-android.git

viernes, 23 de noviembre de 2012

Android 4.2 Jelly Bean Update para Nexus Galaxy

  Hola que tal a todos, hoy les quiero compartir mi opinión acerca de Android 4.2 (todavía llamado Jelly Bean) que se ha estado enviando a varios celulares desde la semana pasada. Hace dos días recibí la actualización vía OTA y al instalarla lo primero en notar es el icono de la cámara. Así es en esta versión de android Google puso mucho empeño en la cámara de los dispositivos y en darnos la opción de sphere photo (foto esférica) así es que normal que sea el primer punto a notar. Esta opción permite tomar fotografías no solo panorámicas pero en todas direcciones y ensamblarlas en una esfera para dar una ilusión de 3D. Una gran característica si te apasiona la fotografía y tienes tiempo de fabricar una buena foto de un paisaje que te guste (por que toma bastante tiempo hacer una buena foto).

La segunda característica y la cual me encanta es la escritura por desliz. Esta característica ya estaba disponible en versiones anteriores de Android como en los Motorola Droid o utilizando aplicaciones externas como TouchPal, lo que permite es arrastrar el dedo por el teclado hacia diferentes teclas y escribir sin necesidad de estar haciendo clic en las diferentes teclas. Creanme es una opción que me encanta, al principio tal vez se les haga complejo escribir algunas palabras o si quieren usar algunas palabras fuera del diccionario (como wey, o hijola :) ) el teclado no las reconoce; pero una vez que llevan tiempo escribiendo y su diccionario ha crecido no podrán regresar al modo antiguo de presionar y presionar botones en pantalla.

La aplicación de reloj y alarma. Se que suena un poco tonto pero me encanta esta nueva versión, el diseño es genial y en esta ocasión cuenta con timer, que se pueden programar unos con otros. Es una gran ventaja para cuando estoy en el gimnasio. Jejejeej solo falta que se puedan programar uno después del otro para los ejercicios de rutina. Estoy tentado a descargar el código fuente de esta aplicación y modificar la para que se pueda hacer. Si tengo tiempo libre lo haré rápidamente y la compartiré con ustedes.

Las animaciones son otra característica que cambio un poco, al iniciar y salir del menú y cambiar de una aplicación a otra se pueden notar algunas variaciones en las animaciones, las cuales se ven esplendidas pero en ocasiones hacen que las transiciones no sean tan suaves como anteriormente lo eran. Tal vez sea por el hardware de mi Nexus Galaxy ya que este sistema esta optimizado para las nexus 7, 10 y el nuevo Nexus 4. Aunque es una pena ya que si esto persiste hará que la experiencia en el Galaxy Disminuya. Aun y cuando Google dice que con el project Butter las animaciones son mas suaves y las transiciones son mejor crean me después del update podrán notas uno o dos glitches que en la versión anterior no se notaban.

Aun y cuando las mejores características de este update solo se pueden ver en las Tablet Nexus esta actualización trae muy buenos features al Galaxy Nexus. Espero que comenten sus experiencias con esta nueva versión en sus dispositivos.





viernes, 28 de septiembre de 2012

Problema con Bateria Samsung Galaxy Nexus

Que tal, en esta ocasión les quiero compartir algo muy sencillo y rápido. Me paso esta semana con mi Galaxy Nexus y fue un poco frustrante así espero y a nadie mas le suceda. Llevo poco tiempo que lo adquirí (creo que como 3 meses). Todo ha funcionado de maravilla, recibí la actualización a Jellybean un poco después de que lo compre y el sistema funciona muy bien. Aun no lo he rooteado por que no me he visto en la necesidad de hacerlo, no necesito aplicaciones que utilicen root, el HotSpot funciona perfecto y con la red de AT&T en Estados Unidos los ver videos en youtube es muy buena experiencia.
Bueno al problema, a principios de esta semana después de desconectar el teléfono del cargador antes de salir al trabajo note que el indicador de batería marcaba que aun estaba cargando. La primera vez no le di mucha importancia por que desapareció luego de un rato. Después de uno o dos días al observar mas detalladamente vi que el indicador se volvía loco marcaba cargando a los pocos segundos no y así titubeaba entre los dos estados mientras se cuenta con bastante batería no hay problema pero cuando la batería baja a menos del 15% es cuando se vuelve molesto. El mensaje de que la batería esta baja aparece y desaparece a cada rato por este cambio en el indicador.

Pensé que era algún problema con alguna de las aplicaciones que había instalado por que esta semana estuve probando varios juegos y aplicaciones. Así que decidí hacer un factory reset, por cierto como el Galaxy Nexus no tiene tarjeta SD cuando se hace un factory reset se pierden todos los datos, fotos, etc., así que es bueno verificar que todo este respaldado en la nube antes de hacerlo, para deshacerme del error. Pero para mi sorpresa después de esto el problema continuo.

Luego de investigar un rato aquí va la solución. Al parecer el contacto micro-usb en la parte baja del teléfono esta algo expuesto y si el cargador se inserta mal o si alguna basura entra en el se presenta este problema. Lo que hay que hacer es con un palillo limpiar el contacto y presionarlo hacia la parte de abajo para que se despegue y ya no haya un falso contacto que haga creer al teléfono que se esta cargando.

Así que si este problema les pasa a ustedes
"Que no Cunda el Panico y Limpien el Contacto"
y con eso se debe de solucionar, espero y este post les ayude a ustedes y no pierdan datos de su teléfono como me paso a mi.

Saludos

viernes, 31 de agosto de 2012

Raspberry PI

Hola que tal se que he estado desconectado del blog por bastante tiempo, los tiempos de transición siempre son difíciles entonces espero y pronto poder tener calma y poder seguir en el blog. En esta ocasión les quiero compartir rápidamente una imagen de mi nuevo juguete. Adquirí una unidad de Raspberry PI para experimentar. Algunos de ustedes ya sabrán lo que es, para los que no. Raspberry PI es una proyecto non-profit cuya finalidad es llevar computadoras a los niños para que estos aprendan a programar (revisen la pagina oficial del proyecto).  Esta fundación ofrece una computadora completa de un tamaño un poco mayor a una tarjeta de crédito a solo $35  USD. Al parecer existen 2 versiones de la tableta, modelo A de $25 Dlls y modelo B a 35, aunque no he encontrado donde poder comprar el modelo A.

Este proyecto se volvió muy famoso ya que varios proyectos han nacido utilizando esta pc, desde crear un Centro Multimedia Completo usando XBMC hasta robots automatizados y otras cosas avanzadas. Como el hardware es extremadamente barato las ordenes han sobre saturado la producción y existe una larga lista de espera, pero por fin pude obtener la mía. Sobre este hardware se han configurado varias distribuciones de linux para instalar por lo que la computadora se vuelve muy versátil al momento de programar y desarrollar diferentes cosas con ella. Las especificaciones del modelo B son:

  • Procesador ARM1176JZF-S a 700 MHz
  • Procesador gráfico VideoCore IV
  • 256 MiB de memoria RAM 
Estas especificaciones son mas del doble que la primera computadora personal que adquirió mi familia así que imaginen lo que se puede hacer con ella. Durante un tiempo estaré trabajando en algunos proyectos para esta tabla esperemos y nos vaya bien. Y para aquellos que nos gusta jugar con Android, ya existe un proyecto para portar Android a esta plataforma así que esperemos que pronto sea posible tener el sistema en mi juguete.

Aquí abajo una foto y algunos videos de cosas interesantes que se pueden hacer con raspberry.



viernes, 13 de julio de 2012

Google I/O, Nuevo Dispositivo, Android Jelly Bean y otras cosas de mediados de año



Hola que tal a todos, quiero comenzar este post con varias disculpas a todos los usuarios de Droid 2 Global.  Estuve alejado del post por vario tiempo y no di el soporte ni ayude lo suficiente como hubiera querido, ahora me doy cuenta que adaptarme a la nueva ciudad, trabajo y hobbies lleva tiempo. Con este post hago oficial mi salida de las pruebas de CM9 para Droid 2 Global; si alguno de ustedes estuvo (que envidia :) ) o vio a través de youtube google I/O 2012, se dieron cuenta que Android Jelly Bean (4.1) sera liberado en unos cuantos días OTA (el codigo fuente ya ha sido liberado) y de acuerdo a algunos post en el foro de Cyanogenmod, CM10 ya ha comenzado a ser desarrollado. Las noticias oficiales son que se tendrá un release estable de CM9 basado en ICS a la par que se esta desarrollando la nueva versión. La mala noticia es que el porte de cyanogenmod para Droid 2 Global no es oficialmente reconocido por lo tanto la gente de cyanogenmod no puede prometer un release oficial para este dispositivo. Algunos de los desarrolladores ya han comenzado a trabajar en nuevos proyectos y el trabajo de CM9 para Droid 2 Global se ha disminuido.

El segundo punto que quiero tratar (y que esta relacionado con el primero), es que he adquirido un nuevo celular. Mi Nexus Galaxy llego la semana pasada y esta excelente, y mas por que hoy acaba de ser actualizado a Android 4.1 Jelly Bean. Por los comentarios que se hicieron la semana pasada en Google I/O es que esta semana Nexus Galaxy, Nexus S, Motorola Xoom y Nexus 7 serian actualizados en algún momento de esta semana y así fue. Google cumplió su palabra, eso me lleva al siguiente punto.


Android Jelly Bean (4.1) es muy similar en aspecto (abajo les dejare unos screen-shots) pero el desempeño se puede notar desde el primer uso. En google I/O se anuncio que la VSync seria introducido a todo el sistema base de android y que las animaciones serian mas suaves (pueden ver esta platica aqui). Pues esto es cierto la verdad es que las animaciones, el tiempo de respuesta y el uso de los widgets y el menú se sienten mucho mejor desde la primera vez que lo usas, aun y cuando se vean como cosas muy pequeñas esto mejora mucho la experiencia de uso del celular. Lo mejor de esta nueva versión de android es "Google Now"; cuando lo vi anunciado en I/O no me pareció gran cosa, pero la verdad es que si presenta otra cara del sistema, el reconocimiento de voz es excelente. Funciona muy bien y aun en Español y las famosas "CARDS" que presenta en realidad presentan información importante, clima, transito y recordatorios. Es un muy buen feature a mi forma de pensar. Ahora la funcionalidad del reconocimiento de voz ahora funciona aun cuando no se cuenta con Internet en el dispositivo y puede servir para buscar dentro de todos los items del telefono, llamar, tocar música y mas.

Otro punto que quería compartir con ustedes es que ya están disponibles la mayoría de las sesiones de google I/O en youtube. Si alguno de ustedes las vio (como fue mi caso) a través del canal de youtube o si tubo la suerte de ir a San Francisco a verlas en vivo se dio cuenta que hubo bastantes anuncios por parte de la gente de google y muchas platicas interesantes sobre Android y otros productos de Google; ademas, a todos los asistentes al evento les regalaron un Nexus Galaxy, la nueva tablet de google Nexus 7 y el nuevo centro multimedia que desarrollaron Nexus Q. Espero en un futuro poder ir a uno de estos eventos para que me regalen también cosas. Si estan interesados en ver las sesiones pueden encontrar el indice en https://developers.google.com/events/io/; para mi gusto de las mejores fueron "What's new in Android", con Romain Guy y Chet Hase y tambien "Making Good Apps Great:..." con Reto Meier. Ellos son unos de mis oradores favoritos en cuanto a Android y ya se me esta haciendo costumbre seguirlos en las sesiones de google I/O, las sesiones de Reto aun y cuando habla de cosas avanzadas dentro del sistema se hacen divertidas con los vídeos que muestra.

Bueno pues este es un post un poco largo y no muy técnico, solo quería escribir lo que ha pasado últimamente con mi vida y lo que estará por venir. Espero y poder seguir ayudando a la comunidad de Droid 2 Global e iniciar con desarrollos y hacking para Nexus Galaxy así como futuros ejemplos y tips de algunas nuevas aplicaciones que tengo pensadas desarrollar. Ya para terminar les dejo algunas imágenes de Android Jelly Bean y de mi nuevo dispositivo.

Como siempre un saludo a todos y gracias por leer el blog.









lunes, 4 de junio de 2012

Batería Droid 2 Global

Hola que tal a todos, antes que nada una disculpa por no haber estado muy al pendiente del blog en los ultimos meses. Me he mudado de trabajo, país y aun me estoy adaptando. Ademas he estado muy envuelto en probar CM9 y todos los builds que han estado saliendo para el cel y no he tenido mucho tiempo de probar muchas cosas mas para el cel.

En esta ocasión les quiero hacer una pregunta a todos los lectores del blog, antes que nada pues el estado del desarrollo de CM9 va bien, se han realizado buenos progresos pero aun tenemos problemas con los modulos HAL de la cámara y el audio pero esperemos tener progresos. Tomar fotos es casi 100% seguro aun tenemos problemas cuando el telefono va a stand by y la cámara esta preparada y el audio con bluetooth esta dando buen dolor de cabeza. Pero pronto ya podremos tener esta excelente rom en nuestro cel.

Bueno la pregunta, en los ultimos dias estube flasheando varios roms y ahora el telefono ya no quiere iniciar, lo ultimo que pude realizar es flashear ROM 608 de Verizon con sbf_flash y rootear el cel y luego de eso ya no inicia el teléfono, se queda en el modo de carga pero la bateria presenta un "?" y si entro al bootloader me dice que no tiene suficiente bateria para programar. Ya intente con varios cargadores y nada, por lo que estube leyendo es problema de la batería pero aun no quiero comprar una batería de reemplazo si este no es el problema. Alguna vez les ha pasado este problema??? si tengo que comprar una bateria de reemplazo estoy pensando seriamente en cambiar tmb el celular por otro modelo y dejar este solo para desarrollo. Pero esperemos y aun pueda durar un poco mas por que la verdad me encanta el telefono.


martes, 10 de abril de 2012

Nuevas Noticias para CM9 y Droid 2 Global

Hola que tal a todos, primero que nada una disculpa por haber tardado tanto en escribir de nuevo en el blog. Este ultimo mes ha sido muy ajetreado, cambie de trabajo, de residencia y me tuve que decir hasta luego a muchos de mis amigos en casa :(. Primero que nada les tengo malas noticias a todos los usuarios que recibieron la ultima actualización de Verizon y que trataron de hacer flash a versiones anteriores y que ahora están atorados con el bootloader. Fui personalmente a varios distribuidores de Verizon y trate de explicar la situación, lo único que me dijeron es que eso no se debe de hacer y por lo tanto el teléfono pierde su garantía y como estos teléfonos ya no están siendo distribuidos lo único que podemos hacer es llevarlos para que nos los tomen a cuenta por uno nuevo. Ahorita tienen una promoción de llevar el cel viejo y te hacen un descuento de $50 dolares en la compra de uno nuevo pero me comentaron que ellos no pueden cargar la imagen del sistema, necesitarían mandarlo a un centro de reparación y como ya no tiene garantía tendría un costo para mi. (Creo que la persona del mostrador no me entendió muy bien y lo que quería era venderme uno nuevo :S jejeje). Por lo tanto creo que Verizon no es una opción para reparar el cel, estuve buscando en Internet pero aun no encuentro la manera de obtener la imagen o un archivo de imagen listo para esta nueva versión; así que la espera tendrá que continuar, lo siento por eso.


Por otro lado el desarrollo de CM9 para el cel va en progreso, se han tenido grandes avances y creo que hasta este momento ya se puede considerar una versión como Beta, estos probando el build del 3 de abril que realizo Angel y la cámara ya esta funcionando, existen pequeños problemas aun con el vídeo pero ya es poco lo que falta hasta tener una versión estable para el cel. Los invito a probarla y a ayudar a reportar posibles problemas que puedan tener ya sea por este medio o en la pagina oficial de rootzwiki del desarrollo, aquí les dejo el link desde donde pueden descargar la ultima versión lo único que necesitan es estar en la versión 608 (Gingerbread) de Verizon y flashear el Zip utilizando clockworkmod yo creo ya la mayoría esta familiarizado con este procedimiento, si no puede dejar un comentario tmb y lo volvemos a revisar.


Para descargar el ultimo build visiten:
http://synibox.info/synik4l/x13thangelx/D2G/cm9/


El thread oficial de desarrollo en RootzWiki
http://rootzwiki.com/topic/17976-cyanogenmod-9-unofficial-for-droid-2-global-ics403-update-31512/


P.D. Si alguien tiene alguna información sobre como sacar o de donde descargar una imagen SBF de la nueva versión de Verizon (4.5.629) se les agradece que comenten.