Realmente no deberías usar eso, ya que bloquea el hilo de la interfaz de usuario. Esta biblioteca se encargará de enhebrar y descargar por usted: github.com/koush/UrlImageViewHelper
koush
16
No si ejecutas ese bloque en un hilo separado menos el setImageBitmap
Jonathan
funciona mostrando en miniaturas y haciendo clic en la vista de imagen, utilicé dsplaying dailog pero se abre después de 10 segundos
Prasad
44
@koush: este código estaría bien si se envuelve en un AsyncTask.
Greg Brown
2
Debe realizar cualquier operación de red en un hilo separado. Cuando se ha cargado el mapa de bits, puede usar ImageView.post () o Handler.post ()
Volodymyr Shalashenko
311
La respuesta aceptada arriba es excelente si está cargando la imagen con solo hacer clic en un botón, sin embargo, si lo está haciendo en una nueva actividad, congela la interfaz de usuario por un segundo o dos. Mirando a mi alrededor descubrí que un simple asinctask eliminaba este problema.
Para usar un asinctask para agregar esta clase al final de su actividad:
Me gusta esta solución, solo debes limpiar el código de onPostExecute, ya que su cuerpo está fuera.
Sofija
esto es genial. @Sofija, ¿qué quisiste decir con limpieza? ¿Qué pasa si tienes un número desconocido de fotos?
5er
@ 5er Tenía algunos de los corchetes fuera de lugar en la respuesta original. Desde entonces lo he limpiado, así que deberías poder usarlo como está.
Kyle Clegg
Sin olvidar que también debemos agregar permisos en manifiesto: <uses-permission android: name = "android.permission.INTERNET" />
mike20132013
1
Esto es increíble para aprender / piratear (upvoted), pero para cualquier producción, debe usar una biblioteca de Imageloader, hay tantos por ahí. Mi favorito es Universal Image
Loader
31
prueba picasssoagradable y termina en una declaración
Picasso, Glide son mis favoritos, también. La declaración de Glide es bastante similar a Picasso, con muchas mejoras en el tamaño de caché.
anhtuannd
1
Esta debería ser la nueva respuesta, aunque siempre es bueno saber cómo hacerlo por su cuenta. Gran artículo que explica en ambos sentidos: medium.com/@crossphd/…
UrlImageViewHelper llenará un ImageView con una imagen que se encuentra en una URL. UrlImageViewHelper automáticamente descargará, guardará y almacenará en caché todas las URL de imágenes de BitmapDrawables. Las URL duplicadas no se cargarán en la memoria dos veces. La memoria de mapa de bits se administra mediante una tabla hash de referencia débil, por lo que tan pronto como la imagen ya no sea utilizada por usted, la basura se recolectará automáticamente.
1) Uso de la biblioteca Glide Esta es la mejor manera de cargar la imagen desde la URL porque cuando intentas mostrar la misma URL por segunda vez, se mostrará desde la captura, así que mejora el rendimiento de la aplicación
Respuestas:
fuente
AsyncTask
.La respuesta aceptada arriba es excelente si está cargando la imagen con solo hacer clic en un botón, sin embargo, si lo está haciendo en una nueva actividad, congela la interfaz de usuario por un segundo o dos. Mirando a mi alrededor descubrí que un simple asinctask eliminaba este problema.
Para usar un asinctask para agregar esta clase al final de su actividad:
Y llame desde su método onCreate () usando:
No olvide agregar el siguiente permiso en su archivo de manifiesto
Funciona muy bien para mi. :)
fuente
prueba
picassso
agradable y termina en una declaracióntutorial: https://youtu.be/DxRqxsEPc2s
fuente
Pruebe esto agregar archivo jar picasso lib
fuente
en su actividad tome imageview y configure imageDownload de recursos (url, yourImageview);
fuente
UrlImageViewHelper llenará un ImageView con una imagen que se encuentra en una URL. UrlImageViewHelper automáticamente descargará, guardará y almacenará en caché todas las URL de imágenes de BitmapDrawables. Las URL duplicadas no se cargarán en la memoria dos veces. La memoria de mapa de bits se administra mediante una tabla hash de referencia débil, por lo que tan pronto como la imagen ya no sea utilizada por usted, la basura se recolectará automáticamente.
UrlImageViewHelper.setUrlDrawable (imageView, "http://example.com/image.png");
https://github.com/koush/UrlImageViewHelper
fuente
Basado en esta respuesta, escribo mi propio cargador.
Con efecto de carga y efecto de aparición:
Agregar permiso
Y ejecutar:
fuente
Aquí hay un código de muestra para mostrar la imagen desde la URL.
fuente
El mejor método que he probado en lugar de usar bibliotecas
fuente
agregar permiso de Internet en manifiesto
que crear el método de la siguiente manera,
ahora agregue esto en su método onCreate,
Esto funciona para mí.
fuente
El siguiente código muestra cómo configurar ImageView desde una cadena de URL, usando RxAndroid. Primero, agregue RxAndroid library 2.0
ahora use setImageFromUrl para establecer la imagen.
fuente
Hay dos formas:
1) Uso de la biblioteca Glide Esta es la mejor manera de cargar la imagen desde la URL porque cuando intentas mostrar la misma URL por segunda vez, se mostrará desde la captura, así que mejora el rendimiento de la aplicación
dependencia:
implementation 'com.github.bumptech.glide:glide:4.10.0'
2) Usando Stream. Aquí desea crear un mapa de bits a partir de una imagen url
fuente
Aqui tienes
fuente
ivdpfirst
?Prueba esto:
fuente
fuente
Para mí, Fresco es la mejor entre las otras bibliotecas.
Simplemente configure Fresco y luego simplemente configure la imagenURI de esta manera:
Consulte esta respuesta que explica algunos de los beneficios de Fresco.
fuente