我有一个包含可滚动 ImageView 的 Activity -> 该图像比手机屏幕大,因此它是可滚动的。
我希望图像的几个点可以点击。 如果图像是可滚动的并且我还需要检测用户点击了图像的哪一部分,那怎么可能呢?
谢谢
最佳答案
好吧,如果您想提供那种功能,您必须将图像分成不同的部分。因为 ImageView 是一个元素,它能够为整个图像处理它自己的触发事件。触摸中间、右上角、左下角、右四分之一或任何地方都没有关系。您唯一可以确定的是通过以下函数放置触摸的 X 和 Y 坐标:
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){
String xCordinate = String.valueOf(event.getX()
String yCordinate = String.valueOf(event.getY();
}
return true;
}
});
此外,如果您想根据单击图像的哪个部分/部分来处理单个图像上的不同事件,则必须隐藏将触发该事件的元素。在这种情况下,您可以使用 frameLayout,背面有 ImageView,顶部有 4 个按钮(左上、右上、左下、右下),并使用以下代码隐藏按钮:
button.setVisibility(View.GONE);
并使您的功能基于按钮的 onClickListener。
希望我说的有道理。
关于android - 可点击的滚动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53959592/