miércoles, 25 de abril de 2012

Cargar y mostrar imagen de la web en Android

El día de hoy les comparto dos formas de cargar una imagen desde la web. Ambas formas provienen de programadores que han querido compartir sus conocimientos, tiempo y experiencia, y que han compartido los codigos fuente de sus clases para cargar y mostrar imágenes desde la web en nuestro Android.

 Primera forma

Archivo: LoaderImageView.java
Autor: Blundell

Lo único que tenemos que hacer es


  1. Copiar el archivo LoaderImageView en nuestro proyecto o copiar el codigo y crear uno con el mismo nombre.
  2. Cambiar el "package" que apunta a uno que el autor definió como  package diablo.douban.common;  por el que corresponda a nuestra estructura de packages/carpetas. Con esto ya no marcará error.
  3. En la actividad donde deseamos cargar y mostrar la imagen agregamos las siguientes lineas de codigo




Segunda forma

La segunda forma es similar pero usando una tres clases muy bien hechas y que se recomienda sean utilizadas si se va a crear una aplicación para la Android Market que ahora se llama Google Play. Este grupo de clases trabajan en conjunto para cargar de manera asincrona una imagen, guardarla en cache/BD cierto tiempo y recuperarla de ahi hasta que expire el tiempo especificado (un dia, una semana, infinito, ect.) Este es uno de esos aportes que uno realmente agradece dada la calidad y esfuerzo requerido.

Archivos:

UrlImageViewHelper.java
UrlImageCache.java
SoftReferenceHashTable.java

Autor: Koushik Dutta

Descargar codigo fuente

Los pasos para hacer funcionar estas clases son prácticamente los mismo que el ejemplo anterior, la diferencia es que aquí necesitamos tres archivos de código y corregir los tres en su sección del package. Para usarlo hacemos lo siguiente:






Listo!

martes, 10 de abril de 2012

Crear conexion https selfsigned en Android

Una de las tareas mas laboriosas de investigacion y desarrollo es precisamente crear una conexion https en Android con un certificado Selfsigned donde a menudo cuando persiste el problema veremos la excepcion "javax.net.ssl.SSLException: Not trusted server certificate". Hay mucha información en foros pero lo cierto es que no siempre funcionan para todos las soluciones que se plantean. A continuacion muestro como lo he hecho yo.

Este post esta basado en: Este otro post de stackoverflow

Primer paso:

Descargar BouncyCastleProvider

Segundo paso

Pegar el archivo en la carpeta donde se encuentra el JavaRuntime "Java\jre6\bin" o el compilador de Java . Lo que interesa es que se encuentre el archivo keytool.jar que viene por defecto con Java.

Tercer paso

Abrir tu navegador preferido (Chrome, IE, Firefox, etc) y pegar en la barra de direcciones la URL a la que quieres conectarte (https). Da click ante cualquier botón de Aceptar/Continuar que te aparezca. Ahora veras que en la barra de direcciones a la izquierda o derecha (dependiendo del navegador) hay un candado o cerrojo.

Dar un click sobre el candado y luego dar click en la opción Datos del Certificado/Mostrar mas detalles.

Aparecerá una ventana y dependiendo del OS (Windows, Mac, Linux, etc) tendremos que buscar la opción que nos permita guardar el certificado. En el caso de Windows este botón se encuentra en la pestaña "Detalles" y el botón dice "Copiar en archivo...".

La siguiente serie de pasos de puede resumir en "Siguiente... Siguiente" hasta que les de la opcion de elegir el lugar donde se va a guardar el certificado.
Lo vamos a guardar en el mismo lugar donde pusimos el archivo de BouncyCastleProvider y le pondremos el nombre "certificate.cer" al guardarlo.

Cuarto paso

Abrir la consola/terminal y colocarnos en la carpeta donde guardamos el certificate.cer y el BouncyCastleProvider. Luego escribir o copiar (cuidado de no copiar los Enter porque no funcionará) la siguiente instruccion:



Si todo salio bien en la carpeta donde hemos guardado los anteriores archivos deberia existir ahora un archivo llamado "mykeystore.bks".

Quinto paso

Copiar el archivo y pegarlo en la carpeta "res/raw" de su proyecto Android. Si la carpeta raw no existe hay que crearla.

Sexto paso

Ahora lo que tenemos que hacer es que en nuestra aplicación, al crear la conexión se deberá cargar el archivo que hemos creado. A continuación proporciono una clase simple que deberán copiar a su proyecto.



Septimo paso

El paso final es que en su actividad hagan uso de la clase que acabamos de crear con las siguientes instrucciones:



Esto ha funcionado para mi y espero funcione para ti. Otra forma es usando EasySSLSocketFactory y aqui hay un post muy bueno acerca de como hacerlo funcionar Ver el post!

lunes, 2 de abril de 2012

Nokia Lumia 710 ya en Telcel

Finalmente ha aparecido uno de los Nokia Lumia tan esperados: el 710. Abajo podrán ver la imagen publicada en el portal de Tecel y el link para verlo.


Ir al link

Este Smartphone ha sido muy esperado sin embargo ya tiene mucho que salió (aproximadamente 6 meses) y es una pena que hasta ahora tengamos la posibilidad de obtener uno... mal por Telcel y Nokia.