【发布时间】:2018-12-28 13:49:04
【问题描述】:
我有一个 Activity,其中包含一个可滚动的图像视图 -> 图像比手机的屏幕大,因此它是可滚动的。
我希望图像的几个点可以点击。 如果图像是可滚动的并且我还需要检测用户点击了图像的哪个部分,那怎么可能呢?
谢谢
【问题讨论】:
标签: android image android-imageview
我有一个 Activity,其中包含一个可滚动的图像视图 -> 图像比手机的屏幕大,因此它是可滚动的。
我希望图像的几个点可以点击。 如果图像是可滚动的并且我还需要检测用户点击了图像的哪个部分,那怎么可能呢?
谢谢
【问题讨论】:
标签: android image android-imageview
如果您想提供这种功能,您必须将图像分成不同的部分。因为 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;
}
});
此外,如果您想根据单击图像的哪个部分/部分来处理单个图像上的不同事件,则必须隐藏将触发事件的元素。在这种情况下,您可以使用带有 ImageView 的 frameLayout 和顶部的 4 个按钮(左上、右上、左下、右下)并使用以下代码隐藏按钮:
button.setVisibility(View.GONE);
并围绕按钮的 onClickListener 建立您的功能。
希望我说得通。
【讨论】: