我设置了一个像这样的ZoomLayout:https://gist.github.com/anorth/9845602,添加了一个Framelayout,在Framelayout上添加了一些ImageView。
这些ImageViews有一个onClickListener,因此它们通过激活onClickListener来改变颜色。
问题: 当你想用手指捏住放大时,如果你的手指不在ImageViews上,它只能检测到。 如果你的手指在它们上面,我发现,ImageViews的onClickListener覆盖了scaleGestureDetector。 如果我移动手指进行缩放,则onClickListener不会触发。
这个问题有解决方法吗?
我减小了ImageViews的大小并且效果更好,但是点击它们更加困难,所以它不适合我。
编辑:setclickable(false)有效,因此在zoomlayout上没有任何内容阻止输入。 如何激活/停用imageview onclicklistener或激活缩放?
马克
答案 0 :(得分:0)
我很快调查了FrameLayout
&我可以看到它有onScaleBegin
,onScaleEnd
等回调。你可以在你的活动或片段&中听取它们。做一些可能对你有用的事情,
public void onScaleBegin() {
imageView.setClickable(false);
imageView.setFocusable(false);
imageView.setFocusableInTouchMode(false);
}
public void onScaleEnd() {
imageView.setClickable(true);
imageView.setFocusable(true);
imageView.setFocusableInTouchMode(true);
}