Java 覆盖Photoview的单个点击

Java 覆盖Photoview的单个点击,java,android,Java,Android,我在一个视图寻呼机内有一个ImageView,顶部有一个操作栏。我希望能够单点击隐藏动作栏,我还希望能够在每个ImageView上收缩缩放和平移 要实现单点击隐藏动作栏,我有一个简单的OnClickListener来隐藏它 要在每个ImageView上实现收缩缩放和平移,我使用 我遇到了问题,因为只有一键式事件侦听器可以与ImageView关联,并且实现PhotoView库项目会覆盖我的OnClickListener以隐藏ActionBar parent.requestDisallowInter

我在一个视图寻呼机内有一个ImageView,顶部有一个操作栏。我希望能够单点击隐藏动作栏,我还希望能够在每个ImageView上收缩缩放和平移

要实现单点击隐藏动作栏,我有一个简单的OnClickListener来隐藏它

要在每个ImageView上实现收缩缩放和平移,我使用

我遇到了问题,因为只有一键式事件侦听器可以与ImageView关联,并且实现PhotoView库项目会覆盖我的OnClickListener以隐藏ActionBar

parent.requestDisallowInterceptTouchEvent(true);

我不知道如何同时实现这两个目标。似乎唯一的解决方案是创建自己的收缩缩放图像视图,以便自己控制触摸事件。

您必须覆盖PhotoView库本身。如果查看源代码,
photoviewatcher
类就是处理onTouch事件的类

您必须在代码的这一部分(特别是
ACTION\u DOWN
)事件中添加所需的特殊功能性:

@覆盖
公共最终布尔onTouch(视图v、运动事件ev){
布尔值=假;
如果(mZoomeEnabled&&hasDrawable((图像视图)v)){
ViewParent=v.getParent();
开关(ev.getAction()){
案件行动(下)
//首先,禁止家长拦截触摸
//事件
if(null!=父级)
parent.requestDisallowWinterCeptTouchEvent(true);
其他的
i(Log_标记,“onTouch getParent()返回null”);
//如果我们扔,用户按下,取消
//投掷
取消fling();
打破
案件行动(取消):
个案行动(跟进):
//如果用户缩放的比例小于最小比例,请向后缩放
//到最小刻度
如果(getScale()
发现PhotoView库实际上允许我为PhotoViewAttacher对象设置onViewTap,这正是我想要的

要在当前片段/活动中创建PhotoViewAttacher并使其实现PhotoViewAttacher.OnViewTapListener,请创建attacher

PhotoViewAttacher mAttacher = new PhotoViewAttacher(imageView);
mAttacher.setOnViewTapListener(this);
并添加以下功能

public void onViewTap(View view, float x, float y) {
    // your code here
}

我就是这么想的。我只是想知道是否有任何方法可以在父侦听器中捕捉到RequestDisallowWinterCeptTouchEvent,并对一次点击说“不”?哼,我想你做不到。从API文档来看,此方法的全部要点似乎是不允许父级处理触摸事件:“当子级不希望此父级及其祖先使用onInterceptTouchEvent(MotionEvent)拦截触摸事件时调用。”
public void onViewTap(View view, float x, float y) {
    // your code here
}