3. fresco es un poderoso sistema para mostrar imágenes en aplicaciones de Android . Fresco se encarga de cargar y mostrar imágenes, para que no tenga que hacerlo.
Entonces, si la url es localhost, significa que la imagen está en la base de datos del servidor local del sistema en desarrollo como xampp, aún así puedo obtener la imagen de la url =.
blackjack
2
@blackjack: localhost de la aplicación sería el teléfono inteligente en sí. Para acceder a su sistema de desarrollo, el teléfono inteligente y su sistema de desarrollo deberán estar en la misma red y deberá usar la dirección IP de su sistema de desarrollo en esa red.
Ridcully
1
¿es posible usar picasso para cargar la imagen en el botón?
Mahdi
1
@chiragkyada lo intento con este código Picasso.with (context) .load (url) .into (button_view); pero se muestra error para: into (button_view)
Tienes razón. pero solo estas 3 líneas ayudan a resolver el problema. URL newurl = nueva URL (photo_url_str); mIcon_val = BitmapFactory.decodeStream (newurl.openConnection () .getInputStream ()); profile_photo.setImageBitmap (mIcon_val); gracias por tu respuesta
Praveen
2
Para URL: importe java.net.URL; privado estático final int IO_BUFFER_SIZE = 4 * 1024; ¿Cuál fue el último?
UrlImageViewHelper llenará un ImageView con una imagen que se encuentra en una URL.
La muestra realizará una Búsqueda de imágenes de Google y cargará / mostrará los resultados de forma asincrónica.
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 utilizando 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.
mm .. sin embargo, esto no se puede hacer desde el hilo de la interfaz de usuario.
Guy
2
Para las personas que tienen problemas con la "Excepción de URL con formato incorrecto", rodee las líneas anteriores en un intento / captura. stackoverflow.com/a/24418607/2093088
Riot Goes Woof
1
Esto debe hacerse usando AsyncTask como se describió anteriormente
B-GangsteR
63
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, se congela la interfaz de usuario por un segundo o dos. Mirando alrededor, descubrí que un simple asinctask eliminaba este problema.
Para usar un asinctask, agregue esta clase al final de su actividad:
El resultado es una actividad cargada rápidamente y una vista de imagen que aparece una fracción de segundo más tarde dependiendo de la velocidad de la red del usuario.
Buena muestra, pero no creo que esto sea seguro para subprocesos. Estoy tratando de usarlo en un Async onPostExecute, sin embargo, el onPostExecute a veces puede finalizar antes de que se reciba la devolución de llamada, lo que genera una imagen nula.
Jimmy
Esto gestiona su propio hilo. Entonces, ¿por qué no hacer que su llamada ASyncTask vuelva a la interfaz de usuario cuando haya terminado, con la URL que desea? De esa manera no tienes hilos que generan hilos.
Recientemente encontré un hilo aquí , ya que tengo que hacer algo similar para una vista de lista con imágenes, pero el principio es simple, como puedes leer en la primera clase de muestra que se muestra allí (por jleedev). Obtiene la secuencia de entrada de la imagen (de la web)
Luego almacena la imagen como Drawable y puede pasarla a ImageView (a través de setImageDrawable). Nuevamente, desde el fragmento de código superior, eche un vistazo a todo el hilo.
Mucha información buena aquí ... Recientemente encontré una clase llamada SmartImageView que parece estar funcionando muy bien hasta ahora. Muy fácil de incorporar y usar.
Esta es una respuesta tardía, como se sugirió anteriormente AsyncTask, y después de buscar en Google un poco, encontré una forma más para este problema.
Drawable drawable = Drawable.createFromStream((InputStream) new URL("url").getContent(), "src");
imageView.setImageDrawable(drawable);
Aquí está la función completa:
publicvoid loadMapPreview (){//start a background thread for networkingnewThread(newRunnable(){publicvoid run(){try{//download the drawablefinalDrawable drawable =Drawable.createFromStream((InputStream)new URL("url").getContent(),"src");//edit the view in the UI thread
imageView.post(newRunnable(){publicvoid run(){
imageView.setImageDrawable(drawable);}});}catch(IOException e){
e.printStackTrace();}}}).start();}
No olvide agregar los siguientes permisos en su AndroidManifest.xmlpara acceder a Internet.
¡Esto es realmente muy bueno para el minimalismo! Solo tenga en cuenta que es necesario ejecutar un extra Threadporque el subproceso de la interfaz de usuario no permite operaciones de red.
creativecreatorormaybenot
6
imageView.setImageBitmap(BitmapFactory.decodeStream(imageUrl.openStream()));//try/catch IOException and MalformedURLException outside
Intente de esta manera, espero que esto lo ayude a resolver su problema.
Aquí explico acerca de cómo usar la biblioteca externa "AndroidQuery" para cargar imágenes desde url / server de manera asíncrona con también imágenes cargadas en caché al archivo del dispositivo o área de caché.
publicclassMainActivityextendsActivity{privateAQuery aQuery;@Overrideprotectedvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
aQuery =newAQuery(this);
aQuery.id(R.id.imageFromUrl).progress(R.id.pbrLoadImage).image("http://itechthereforeiam.com/wp-content/uploads/2013/11/android-gone-packing.jpg",true,true);}}Note:Here I just implemented common method to load image from url/server but you can use various types of method which can be provided by"AndroidQuery"to load your image easily.
Respuestas:
Del desarrollador de Android :
Asegúrese de tener los siguientes permisos establecidos en su
AndroidManifest.xml
para acceder a Internet.fuente
1. Picasso permite la carga de imágenes sin problemas en su aplicación, ¡a menudo en una línea de código!
Utiliza Gradle:
¡Solo una línea de código!
2. Glide Una biblioteca de carga y almacenamiento en caché de imágenes para Android centrada en el desplazamiento suave
Utiliza Gradle:
// Para una vista simple:
3. fresco es un poderoso sistema para mostrar imágenes en aplicaciones de Android . Fresco se encarga de cargar y mostrar imágenes, para que no tenga que hacerlo.
Comenzando con Fresco
fuente
Tendrás que descargar la imagen primero
Luego use Imageview.setImageBitmap para establecer el mapa de bits en ImageView
fuente
Escribí una clase para manejar esto, ya que parece ser una necesidad recurrente en mis diversos proyectos:
https://github.com/koush/UrlImageViewHelper
fuente
De todos modos la gente pide mi comentario para publicarlo como respuesta. Estoy publicando
fuente
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, se congela la interfaz de usuario por un segundo o dos. Mirando alrededor, descubrí que un simple asinctask eliminaba este problema.
Para usar un asinctask, agregue esta clase al final de su actividad:
Y llame desde su método onCreate () usando:
El resultado es una actividad cargada rápidamente y una vista de imagen que aparece una fracción de segundo más tarde dependiendo de la velocidad de la red del usuario.
fuente
También puede usar esta vista LoadingImageView para cargar una imagen desde una url:
http://blog.blundellapps.com/imageview-with-loading-spinner/
Una vez que haya agregado el archivo de clase desde ese enlace, puede crear una instancia de una vista de imagen de URL:
en xml:
En codigo:
Y actualícelo usando:
fuente
fuente
Hola, tengo el código más fácil, prueba esto
main.xml
prueba esto
fuente
La mejor biblioteca moderna para tal tarea en mi opinión es Picasso by Square. Permite cargar una imagen a un ImageView por URL con una sola línea:
fuente
Recientemente encontré un hilo aquí , ya que tengo que hacer algo similar para una vista de lista con imágenes, pero el principio es simple, como puedes leer en la primera clase de muestra que se muestra allí (por jleedev). Obtiene la secuencia de entrada de la imagen (de la web)
Luego almacena la imagen como Drawable y puede pasarla a ImageView (a través de setImageDrawable). Nuevamente, desde el fragmento de código superior, eche un vistazo a todo el hilo.
fuente
Mucha información buena aquí ... Recientemente encontré una clase llamada SmartImageView que parece estar funcionando muy bien hasta ahora. Muy fácil de incorporar y usar.
http://loopj.com/android-smart-image-view/
https://github.com/loopj/android-smart-image-view
ACTUALIZACIÓN : Terminé escribiendo una publicación de blog sobre esto , así que échale un vistazo para obtener ayuda sobre el uso de SmartImageView.
2ª ACTUALIZACIÓN : ahora siempre uso Picasso para esto (ver arriba) y lo recomiendo encarecidamente. :)
fuente
Esta es una respuesta tardía, como se sugirió anteriormente
AsyncTask
, y después de buscar en Google un poco, encontré una forma más para este problema.Drawable drawable = Drawable.createFromStream((InputStream) new URL("url").getContent(), "src");
imageView.setImageDrawable(drawable);
Aquí está la función completa:
No olvide agregar los siguientes permisos en su
AndroidManifest.xml
para acceder a Internet.<uses-permission android:name="android.permission.INTERNET" />
Lo intenté yo mismo y aún no he tenido ningún problema.
fuente
Thread
porque el subproceso de la interfaz de usuario no permite operaciones de red.fuente
Esto te ayudara...
Definir imagen vista y cargar imagen en ella .....
Luego defina este método:
fuente
fuente
Versión con manejo de excepciones y tarea asíncrona:
fuente
fuente
Una manera simple y limpia de hacer esto es usar la biblioteca de código abierto Prime .
fuente
Este código está probado, está funcionando completamente.
fuente
Trabajar para imageView en cualquier contenedor, como vista de cuadrícula de vista de lista, diseño normal
fuente
Intente de esta manera, espero que esto lo ayude a resolver su problema.
Aquí explico acerca de cómo usar la biblioteca externa "AndroidQuery" para cargar imágenes desde url / server de manera asíncrona con también imágenes cargadas en caché al archivo del dispositivo o área de caché.
activity_main.xml
MainActivity.java
fuente
Android Query puede manejar eso por usted y mucho más (como el caché y el progreso de carga).
Echa un vistazo aquí .
Creo que es el mejor enfoque.
fuente