Utilice Picasso para colocar la imagen en dibujable

Estoy intentando utilizar Picasso desde Square para extraer un jpg de una URL y luego añadir a un EditText. La razón de Picasso es que es muy ligero en la implementación. Como se puede ver, estoy usando un marcador de posición ImageView, mediante el cual Picasso importará la imagen desde la URL proporcionada, y luego convertiré ImageView en Drawable. Lo mismo ocurre con ImageGetter. Sin embargo, recibo un error de puntero nulo al usar la configuración a continuación. (Tenga en cuenta que al usar un drawable de los recursos de la aplicación en lugar de la variable 'drawImage' a continuación, esta configuración funciona, pero estoy tratando de extenderla para extraer recursos de una URL).

¿Hay algo fuera de lugar aquí? ¿O una manera más eficiente de hacer esto?

Método para añadir a EditText:

public void appendToMessageHistory(String username, String message) { if (username != null && message != null) { ImageView image = new ImageView(getApplicationContext()); Picasso.with(getBaseContext()).load("http://localhost:3000/uploads/campaign/image/2/2.jpg").into(image); Drawable drawImage = image.getDrawable(); messageHistoryText.append(Html.fromHtml("<b>" + username + ":" + "</b>" + "<br>")); messageHistoryText.append(Html.fromHtml(message + "<hr>" + "<br>") + System.getProperty("line.separator") + ""); messageHistoryText.append(Html.fromHtml("<img src = '" + drawImage + "'/>", imageGetter, null)); } } 

El ImageGetter:

 ImageGetter imageGetter = new ImageGetter() { @Override public Drawable getDrawable(String source) { ImageView image = new ImageView(getApplicationContext()); Picasso.with(getBaseContext()).load("http://localhost:3000/uploads/campaign/image/2/2.jpg").into(image); Drawable drawImage = image.getDrawable(); drawImage.setBounds(0, 0, drawImage.getIntrinsicHeight(), drawImage.getIntrinsicWidth()); return drawImage; } 

};

Hay algo que extrañas de Picasso. Puede establecer una clase de destino anonymous en el método inTo como y establecer bitmap en cualquier objeto que tenga:

 Picasso.with(getBaseContext()).load("your url").into(new Target() { @Override public void onPrepareLoad(Drawable arg0) { } @Override public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) { // TODO Create your drawable from bitmap and append where you like. } @Override public void onBitmapFailed(Drawable arg0) { } }); 

EDIT para que esto es cómo hacer eso:

 public void appendToMessageHistory(String username, String message) { if (username != null && message != null) { ImageView image = new ImageView(getApplicationContext()); Picasso.with(getBaseContext()).load("image url").into(new Target() { @Override public void onPrepareLoad(Drawable arg0) { } @Override public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) { Drawable drawImage = new BitmapDrawable(getBaseContext().getResources(),bitmap); messageHistoryText.append(Html.fromHtml("<b>" + username + ":" + "</b>" + "<br>")); messageHistoryText.append(Html.fromHtml(message + "<hr>" + "<br>") + System.getProperty("line.separator") + ""); messageHistoryText.append(Html.fromHtml("<img src = '" + drawImage + "'/>", imageGetter, null)); } @Override public void onBitmapFailed(Drawable arg0) { } }); } } 
  • Memoria caché de picasso para Android
  • Si Picasso repite la imagen cargando para siempre cuando no hay acceso a Internet
  • Android: Picasso no carga algunas imágenes
  • Error de JNI en la animación de transición de escena - Capa supera el máximo
  • Image uri no muestra imágenes en ImageView en algún dispositivo Android
  • Almacenar imágenes en picasso con una clave de caché propia
  • Google Map personaliza la imagen de marcador con picasso, se actualiza dos veces para mostrar la imagen
  • Picasso no carga imágenes
  • ¿Puedo cargar una imagen con Picasso en la barra de acción?
  • Progreso de la demostración al descargar la imagen del servidor a la vista de la imagen
  • Elementos compartidos de Android con Picasso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.