如何判断某人是否点击了android中的某个区域?

发布于 2024-12-08 10:24:54 字数 191 浏览 0 评论 0原文

我正在尝试创建一个活动,一旦有人单击(并按住)屏幕中间的按钮图像,该活动就会更改背景。释放按钮后,应用程序将切换回正常背景。

到目前为止,我已经尝试在“区域”前面放置一个按钮来按下并将其可见性设置为不可见。

有更好的方法吗?有没有办法感知人是否松开了按钮? (例如,按下按钮时执行一些操作,释放按钮时执行其他操作)

谢谢

I am trying to create an activity that changes backgrounds once someone clicks (and holds) an image of a button in the middle of the screen. The app will switch back to its normal background once the button is released.

So far I've tried placing a button in front of the "area" to press and set its visibility to invisible.

Is there a better way to do this? Is there a way to sense if the person let go of the button? (e.g. on button pressed do some stuff, when button released do other stuff)

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鹊巢 2024-12-15 10:24:54

您想要类似 NumberPickerButton 的内容和 NumberPicker。

您应该在按钮上启用长按 (setLongClickable(true))。
然后响应 onLongClick 事件和 onTouchEvent(如果操作为 UP)。

您的事件处理程序应该如下所示:

public boolean onLongClick(View v) {
  changeYourBackground();
  return true;
}

public boolean onTouchEvent(MotionEvent event) {
  if ((event.getAction() == MotionEvent.ACTION_CANCEL)
        || (event.getAction() == MotionEvent.ACTION_UP)) {
     putYourBackgroundBack();
  }
  return super.onTouchEvent(event);
}

You want something like NumberPickerButton and NumberPicker.

You should enable long clicking (setLongClickable(true)) on your button.
Then respond to both onLongClick event, and the onTouchEvent, if action is UP.

Your event handlers should look something like this:

public boolean onLongClick(View v) {
  changeYourBackground();
  return true;
}

public boolean onTouchEvent(MotionEvent event) {
  if ((event.getAction() == MotionEvent.ACTION_CANCEL)
        || (event.getAction() == MotionEvent.ACTION_UP)) {
     putYourBackgroundBack();
  }
  return super.onTouchEvent(event);
}
秋意浓 2024-12-15 10:24:54

您可以使用画布来做到这一点。这样,您只需将图像显示在画布中间并捕获区域上的触摸事件,图像就会覆盖。并且当用户触摸该区域时,更改画布的背景颜色。

You can do this using canvas.In that,you can just take an image to be displayed in middle of canvas and catch the touch event on area,the image covers.And when user touches that area,change the background color of canvas.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文