Cómo cargar la image de URL en PhotoView

Estoy tratando de usar la biblioteca PhotoView de Chris Banes con una muestra adjunta. Realicé algunos cambios en la muestra para cargar la image desde la URL (en Internet), no desde dibujable como muestra. Aquí está el código:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImageView = (ImageView) findViewById(R.id.iv_photo); mCurrMatrixTv = (TextView) findViewById(R.id.tv_current_matrix); //here's the method to load URL image from URL new LoadImage().execute(); mAttacher = new PhotoViewAttacher(mImageView); } private class LoadImage extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... params) { // Simulates a background job. try { mImageView.setImageDrawable(grabImageFromUrl(image_url)); } catch (Exception e) { e.getStackTrace().toString(); } return null; } } private Drawable grabImageFromUrl(String url) throws Exception { return Drawable.createFromStream((InputStream)new URL(url).getContent(), "src"); } 

El problema era que la image no está cargada, simplemente devuelve una página en blanco. Y lo extraño sucedió cuando intenté algunas acciones de pellizcar y acercar, la image se cargó y funcionó normalmente. Alguien tiene sugerencia? Gracias.

Primero intente cargar la image en un bitmap y luego establezca el bitmap en la vista de la image.

URL a bitmap:

 public static Bitmap getBitmapFromURL(String src) { try { URL url = new URL(src); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); Bitmap myBitmap = BitmapFactory.decodeStream(input); return myBitmap; } catch (IOException e) { e.printStackTrace(); return null; } } 

y luego use iv.setimagebitmap ()

  private Bitmap bmp; bmp = new Bitmap[1]; // to fetch the image BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = calculateInSampleSize(options, screenWidth, screenHeight); options.inJustDecodeBounds = false; final Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(url, new Rect(), options); // to set the image Runnable action = new Runnable() { public void run() { bmp = bitmap } }; runOnUiThread(action); 

Ahora tienes la image en bmp. Tómelo y configúrelo en el Adaptador para su Galería.

 ImageView imageView = new ImageView(container.getContext()); PhotoViewAttacher attacher = new PhotoViewAttacher(imageView); imageView.setImageBitmap(bmp); attacher.update();