Mostrar imagenes en listview desde Url Guardadas en BD

2,061 views
Skip to first unread message

Jose Daniel Leon Ruiz

unread,
Oct 7, 2013, 1:34:56 PM10/7/13
to desarrollad...@googlegroups.com
Buenas tardes people, necesito ayuda con un problema y espero me puedan ayudar.

estoy creando un listview que muestra los datos que recoge de una base de datos.  
la tabla esta conformada con las siguientes columnas { id, nombre, descripcion , urlimagenes}. 
cree un cursorAdapter personalizado y puedo mostrar los datos en los texview, pero la imagen no. intente varias cosas pero no logro mostrar las imágenes. O solo puedo mostrar una imagen y se repite en todo el texview

creo que esta demás decir que las imágenes no están guardadas en la BD solo es las url donde están publicadas.

espero vuestra ayuda, saludos




Jose Daniel Leon Ruiz

unread,
Oct 8, 2013, 6:31:49 AM10/8/13
to

public void bindView(View view, Context context, Cursor cursor) {
// TODO Auto-generated method stub
String img =  cursor.getString(cursor.getColumnIndex(ConexBaseDatos.id_imagenProducto));
imgProductos = (ImageView)view.findViewById(R.id.imgproducto);
TextView codProduc = (TextView)view.findViewById(R.id.codProducto);
TextView descripProducto = (TextView)view.findViewById(R.id.descripProduc);
codProduc.setText(cursor.getString(cursor.getColumnIndex(ConexBaseDatos.id_CodigoProduct)));
descripProducto.setText(cursor.getString(cursor.getColumnIndex(ConexBaseDatos.id_DescripcionProduct)));
HandlerImagen(img);
}

private void HandlerImagen(String img) {
// TODO Auto-generated method stub
String url1 = img; //AUNQUE SI COLOCO LA URL DE UNA IMAGEN FUNCIONA PERO SE REPITE SOLO ESA IMAGEN
URL imagenUrl = null; 
try{
imagenUrl = new URL(url1);
HttpURLConnection conn = (HttpURLConnection) imagenUrl.openConnection();
        conn.connect();
        loadedImage = BitmapFactory.decodeStream(conn.getInputStream());
        imgProductos.setImageBitmap(loadedImage);
} catch(Exception ex){
Log.e("error image","errorim" ,ex);
}
}



Bueno les recuerdo que soy novato desarrolando en android y java, disculpen calquier Error super grave.

saludos










yeray

unread,
Oct 8, 2013, 3:24:22 PM10/8/13
to desarrollad...@googlegroups.com

Antonio J. García Vidal

unread,
Oct 8, 2013, 5:05:17 PM10/8/13
to desarrollad...@googlegroups.com
Esta es una de las mejores soluciones que yo he encontrado para la descarga asíncrona de imágenes:
https://github.com/johnnycube/Android-LazyList

Jefferson Delgado P.

unread,
Oct 9, 2013, 10:20:08 AM10/9/13
to desarrollad...@googlegroups.com
Buenas Antonio,

He intentado probar la librería que comentas, y para páginas https no me funciona.
He leído el comentario del propio autor para poder usarlo en páginas https, y sigue sin funcionarme.

¿Alguna idea de como implementarlo para que funcione en páginas https?


Muchas gracias.

Un saludo!


El 8 de octubre de 2013 22:05, Antonio J. García Vidal <garv...@gmail.com> escribió:
Esta es una de las mejores soluciones que yo he encontrado para la descarga asíncrona de imágenes:
https://github.com/johnnycube/Android-LazyList

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/20KhL
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Para ver este debate en la Web, visita https://groups.google.com/d/msgid/desarrolladores-android/0792ca46-bc26-44b5-9197-150ea7d68c6b%40googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Gabriel Pozo

unread,
Oct 9, 2013, 10:29:22 AM10/9/13
to desarrollad...@googlegroups.com

Jefferson Delgado P.

unread,
Oct 9, 2013, 10:32:46 AM10/9/13
to desarrollad...@googlegroups.com
Gracias Gabriel,

Le echaré un ojo y te digo.


Un saludo!


Jefferson Delgado P.

unread,
Oct 9, 2013, 10:47:09 AM10/9/13
to
Buenas nuevamente,

Ahora que miro la librería, es una de las que he probado y me sigue fallando cuando se trata de páginas https (con su correspondiente certificado) :(


El 9 de octubre de 2013 15:32, Jefferson Delgado P. <jjde...@gmail.com> escribió:
Gracias Gabriel,

Le echaré un ojo y te digo.


Un saludo!
El 9 de octubre de 2013 15:29, Gabriel Pozo <jack...@gmail.com> escribió:
Quizás esta otra librería si te sirva https://github.com/nostra13/Android-Universal-Image-Loader

v1.8.1 (08.03.2013)  Handled HTTP(S) redirects
El 9 de octubre de 2013 11:20, Jefferson Delgado P. <jjde...@gmail.com> escribió:
Buenas Antonio,

He intentado probar la librería que comentas, y para páginas https no me funciona.
He leído el comentario del propio autor para poder usarlo en páginas https, y sigue sin funcionarme.

¿Alguna idea de como implementarlo para que funcione en páginas https?


Muchas gracias.

Un saludo!
El 8 de octubre de 2013 22:05, Antonio J. García Vidal <garv...@gmail.com> escribió:
Esta es una de las mejores soluciones que yo he encontrado para la descarga asíncrona de imágenes:
https://github.com/johnnycube/Android-LazyList

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/20KhL
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/20KhL
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/20KhL
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.

Gabriel Pozo

unread,
Oct 9, 2013, 10:53:49 AM10/9/13
to desarrollad...@googlegroups.com
Error? Logcat? Como lo implementaste?


El 9 de octubre de 2013 11:45, Jefferson Delgado P. <jjde...@gmail.com> escribió:
Buenas nuevamente,

Ahora que miro la librería, es una de las que he probado y me sigue fallando cuando se trata de páginas https :(

Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Jefferson Delgado P.

unread,
Oct 9, 2013, 10:58:24 AM10/9/13
to desarrollad...@googlegroups.com
Empieza con:

- Start Display Image task
- Load image from NetWork
- Cache image on Disc

Parece que lo va a conseguir, pero me salta el error:

Hostname 'host' was not verified
java.io.IOException: Hostname 'test.zencityapp.com' was not verified
at libcore.net.http.HttpConnection.verifySecureSocketHostname(HttpConnection.java:223)
at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:446)
at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486)
at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromNetwork(BaseImageDownloader.java:105)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:76)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:360)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisc(LoadAndDisplayImageTask.java:320)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:258)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:129)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:864)

Lo tengo implementado del siguiente modo:

En el adapter, llamo al método:

datos.imageLoader.displayImage(url, holder.foto, datos.options, animateFirstListener);

En la activity del adapter, cargo las opciones e inicializo el ImageLoader, tal que así:

datos.options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error)
.cacheInMemory(true)
.cacheOnDisc(true)
.displayer(new RoundedBitmapDisplayer(20))
.build();
initImageLoader(mContext);

public static void initImageLoader(Context context) {
// This configuration tuning is custom. You can tune every option, you may tune some of them,
// or you can create default configuration by
//  ImageLoaderConfiguration.createDefault(this);
// method.
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.discCacheFileNameGenerator(new Md5FileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.writeDebugLogs() // Remove for release app
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
}

Vamos, he seguido el código de ejemplo que trae y creo que no se me escapa nada.

¿Alguna idea de qué puede estar ocurriendo?
La URL a la que tiene que acceder, tiene certificado, no sé si eso importa demasiado.


Gracias!






Juan de Dios Maldonado Sánchez

unread,
Oct 9, 2013, 11:17:58 AM10/9/13
to desarrollad...@googlegroups.com
Lo que ocurre en este caso está bastante más que explicado en la documentación oficial de Android:

No se si habrá salido a lo largo de la conversación, pero por si las moscas lo pongo.


2013/10/9 Jefferson Delgado P. <jjde...@gmail.com>

Jose Daniel Leon Ruiz

unread,
Oct 9, 2013, 11:20:53 AM10/9/13
to desarrollad...@googlegroups.com
Gracias a todos por responder el post y por la ayuda.

Esta noche me pongo con ello mañana les cuento que tal.


Saludos 

Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/20KhL
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/desarrolladores-android/h_-MvV7lFiM/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a desarrolladores-a...@googlegroups.com.

Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.

Para obtener más opciones, visita https://groups.google.com/groups/opt_out.


--
Jose Daniel Leon R.

Telf. 615780305

Jefferson Delgado P.

unread,
Oct 9, 2013, 11:57:38 AM10/9/13
to desarrollad...@googlegroups.com
Muchas gracias Juan por esa última aclaración; creo que conseguiré lo que pretendo.

Gracias también Gabriel.


Un saludo!


Gabriel Pozo

unread,
Oct 9, 2013, 12:00:53 PM10/9/13
to desarrollad...@googlegroups.com
No había salido antes, ahora que veo el error del logcat, tenes totalmente la razón ;) 



Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Axl ahumada

unread,
Nov 6, 2013, 10:36:31 AM11/6/13
to desarrollad...@googlegroups.com
Lo que yo hago es en la base de datos solo guardar el nombre de la imagen y cuando guardo ese nombre a la vez guardo la imagen en el servidor , entonces en java me creo un string con la ruta de la imagen en el servidor , tambien tengo obviamente el select que me trae el nombre de las imagenes segun la busqueda que haga el usuario en la aplicación , luego concateno la ruta de la imagen con los resultados del select y los meto a un array :)  dicho array se lo paso a mi adaptador y luego seteo los datos del adaptador en mi listview , todo esto se logra con el image loader ;)
Reply all
Reply to author
Forward
0 new messages