0

裏面我RecyclerView的行我有一個ImageView,我想預覽此ImageView「在同活動的形象(全屏預覽)UI凍結,同時顯示的圖像到ImageView的

併爲我做此:

public void showImageZoomable(String imageURL) { 

imageViewZoomable.setVisibility(View.VISIBLE); 

DisplayImageOptions options = new DisplayImageOptions.Builder().cacheOnDisk(true).build(); 

imageLoader.loadImage(imageURL , options, new ImageLoadingListener() { 
    @Override 
    public void onLoadingStarted(String imageUri, View view) { 

    } 

    @Override 
    public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 

    } 

    @Override 
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 

     imageViewZoomable.setImage(ImageSource.bitmap(loadedImage)); 
    } 

    @Override 
    public void onLoadingCancelled(String imageUri, View view) { 

    } 
}); 
toolBar.setVisibility(View.GONE); 
getActivity().findViewById(R.id.tabs).setVisibility(View.GONE); 

}

當用戶輕敲ImageView(這是Recyclerview的行)將上述功能被觸發,它需要該圖像的URL(IMAG Ë已經緩存) 和使用imageLoader庫將其分配給imageViewZoomable

它工作正常,但整個過程是有點慢和laggy

我怎樣才能提高它的任何想法?或我在做它的方式是沒有效率的,那麼請建議我一個更好的選擇

+0

1.您應該聲明ImageLoader和DisplayImageOptions實例一次。 2.使用loadImage並在Recyclerview的行(viewHolder適配器)上聲明DisplayImageOptions使RecyclerView運行緩慢。如果你不能用'ImageLoader的的displayImage',你可以嘗試其他的庫,例如'Picasso'或'Glide',..等 –

回答

0

嘗試使用

imageLoader.displayImage(imageURL, imageViewZoomable); 

,而不是

imageLoader.loadImage(...); 
+0

感謝響應,我不能用''displayImage因爲'imageViewZoomable'不是一個ImageView的(擴展的ImageView類)和'displayImage'需要的ImageView作爲參數 –

0

U可以使用全屏對話框(延伸DialogFragment )顯示全屏圖像時,用戶點擊recyclerview項圖像

+0

圖像是recyclerView的項目,我想表明它在父母的佈局,我們能做到嗎?怎麼樣 ? –

+0

在父佈局文件中創建imageview,並在顯示圖像時使其可見,並在要關閉圖像時設置可見性。但這不是一個好方法。如果您使用全屏對話框,它將覆蓋在recyclerview上方,並且當用戶點擊後,它將被解散。 –

0

您可以使用如下面的代碼自定義類返回ImageView的對象像imageViewZoomable.getI mage()作爲imageView,所以你可以像下面那樣傳遞它。

imageLoader.displayImage(imageURL, imageViewZoomable.getImage());