Fresco ZoomableDraweeView 设置onClickListenet
Fresco ZoomableDraweeView set onClickListenet
我正在使用 Fresco 库开发一个具有图库视图的应用程序。我有一个用户可以缩放图像的要求。所以我使用了 Fresco 示例项目中可用的 ZoomableDraweeView。显示图像和缩放它们效果很好,但是我还需要为 ZoomableDraweeView 设置一个 onClicklistener。我已经尝试设置在 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;
您可以使用 setTapListener()
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
我正在使用 Fresco 库开发一个具有图库视图的应用程序。我有一个用户可以缩放图像的要求。所以我使用了 Fresco 示例项目中可用的 ZoomableDraweeView。显示图像和缩放它们效果很好,但是我还需要为 ZoomableDraweeView 设置一个 onClicklistener。我已经尝试设置在 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;
您可以使用 setTapListener()
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