2016-10-28 158 views
0

如果有可能將ImageView寫入另一個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);只會加載鏡像圖像從緩存中,而不是從遠程服務器再次。

編輯:

如果你打電話getDrawable調用滑翔那麼它將無法工作後伸直,因爲滑翔仍獲取圖像,從而使第一ImageView的仍然是空的。你需要把你的使用滑翔從URL加載圖像時使用,以滑翔的回調,以確保已經加載了調用getDrawable

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

image2.setImageDrawable(image1.getDrawable()一次加載圖像。我想這種方式,圖像是空的好,我想到了緩存機制我不確定滑動如何處理它 – Expiredmind

+1

你需要在圖像加載後調用它,在分鐘時如果你打電話給Glide,則會告訴Glide獲取圖像,並在圖像加載之前填充第二個圖像視圖。 (上下文).load(url).listener(new RequestListener).into(image1)然後在回調中添加getDrawable代碼,然後它應該工作 – MichaelStoddart

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

之前。 Glide將使用它的緩存爲第二個imageview加載圖像,它不會使用互聯網在第二個imageview中加載相同的圖像。

您也可以使用下面的方法來肯定

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); 


       } 
      }); 
相關問題