2016-10-28 9 views
0

ImageViewを別のImageViewに書き込むことができますか?ImageViewのコンテンツを別のImageViewにロードする

 ImageView image1= (ImageView)findByVie(R.id.image1) 
     ImageView image2= (ImageView)findByVie(R.id.image2) 

     Glide.with(context).load(url).into(image1); 

    image2=image1 
// I want to write image from image 1 
//to image 2 without loading it again from internet. 

答えて

1

使用この:

ImageView image1 = (ImageView)findViewById(R.id.image1); 
ImageView image2 = (ImageView)findViewById(R.id.image2); 

Glide.with(context).load(url).into(image1); 
image2.setImageDrawable(image1.getDrawable(); 

しかし、道のグライドの作品で、それはこれだけの画像をロードし、再びGlide.with(context).load(url).into(image2);を呼び出してロードした画像をキャッシュするたとえば

キャッシュから、リモートサーバーから再度ではありません。

EDIT:

あなたがまっすぐグライドを呼び出した後getDrawableを呼び出す場合は、最初のImageViewのは、まだ空であるのでグライドは、静止画像を取得しているため、それは、動作しません。あなたは、あなたがURLから画像をロードするためにグライドを使用しているとgetDrawable

Glide.with(context).load(url).listener(new RequestListener).into(image1); 
+0

に一度画像をロードするには、次の方法を使用することができ、私はその方法を試してみましたが、画像は空だったオーケー、私はキャッシュメカニズムを考えました。グライドの処理方法を確認できませんでした。 – Expiredmind

+1

グライドを呼び出すと、画像がロードされた後、グライドにイメージが取得され、イメージがロードされる前に2番目のイメージビューが読み込まれます。 (context).load(url).listener(new RequestListener).into(image1)次に、getDrawableコードをコールバックに追加して動作させます – MichaelStoddart

0
Bitmap bm=((BitmapDrawable)imageView1.getDrawable()).getBitmap(); 
imgview2.setImageBitmap(bm); 
0

を呼び出す前に、イメージがロードされていることを確認するために、グライドコールバックを使用する必要があります。 Glideはキャッシュを使用して2番目の画像ビュー用の画像を読み込みます.2番目の画像ビューで同じ画像を読み込むためにインターネットを使用しません。

また)image2.setImageDrawable(image1.getDrawable(必ず

Glide.with(this).load("url").into(new SimpleTarget<GlideDrawable>() { 
       @Override 
       public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { 

        image1.setImageDrawable(resource); 
image2.setImageDrawable(resource); 


       } 
      }); 
関連する問題