我正在开发一个使用Fresco库具有图库 View 的应用程序。我有一个用户可以缩放图像的要求。因此,我使用了Fresco示例项目中可用的ZoomableDraweeView。显示图像并缩放它们可以完美地工作,但是我还需要为ZoomableDraweeView设置onClicklistener。我尝试设置默认的clickListener,该默认监听器在Android中使用,但是没有被点击。以下是我用来设置clicklistener的代码
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
最佳答案
默认的触摸行为已在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