2017-02-24 53 views
0

我正在開發一個應用程序,它具有使用Fresco庫的庫視圖。我有一個要求,用戶可以放大圖像。所以我使用了ZoomableDraweeView,這是在Fresco示例項目中可用的。顯示圖像並縮放它們的效果很好,但是我也需要爲ZoomableDraweeView設置一個onClicklistener。我曾嘗試設置Android中使用的默認clickListener,但未獲得點擊。下面是我用來設置clicklistener的代碼壁畫ZoomableDraweeView設置onClickListenet

ZoomableDraweeView view = new ZoomableDraweeView(container.getContext()); 
        ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(images.get(position).getFull_url())) 
          .setProgressiveRenderingEnabled(true) 
          .build(); 
        view.setController(
          Fresco.newDraweeControllerBuilder().setLowResImageRequest(ImageRequest.fromUri(images.get(position) 
            .getThumb_url())) 
            .setImageRequest(request).setOldController(view.getController()) 
            .build()); 
        GenericDraweeHierarchy hierarchy = 
          new GenericDraweeHierarchyBuilder(container.getResources()) 
            .setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER) 
            .setProgressBarImage(null) 
            .build(); 
        view.setHierarchy(hierarchy); 
        ((ViewPager) container).addView(view, 0); 
     view.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        //Toast..... I need this to be called 
       } 
      }); 
        return view; 

在此先感謝。 https://github.com/facebook/fresco/tree/master/samples/zoomable/src/main/java/com/facebook/samples/zoomable

回答

1

默認觸摸行爲是覆蓋在ZoomableDraweeView,的onClick現在不能觸發。我試過setTapListener,它工作。

zoomableDraweeView.setTapListener(new DoubleTapGestureListener(finalZoomableDraweeView){ 
       @Override 
       public boolean onSingleTapConfirmed(MotionEvent e) { 
        if(mItemClickListener != null){ 
         mItemClickListener.onClick(finalZoomableDraweeView); 
        } 
        return super.onSingleTapConfirmed(e); 
       } 
      }); 

要獲得更多資料,請參考我的演示: https://github.com/ibosong/CommentGallery

+0

你做了我的一天。非常感謝!!! – Anu

0

可以使用setTapListener()

+0

能否請你解釋一下? – Anu