gpt4 book ai didi

java - Android-如何让移动的屏幕对象扩展Button

转载 作者:行者123 更新时间:2023-12-02 08:00:49 25 4
gpt4 key购买 nike

在我正在开发的应用程序中,我有一个扩展表面 View 的类,还有一个处理所有计算以找出应在屏幕上绘制对象的位置和时间的类。现在,我有一种注册屏幕点击的老套方法,其中每次点击都会解析对象列表,并且最接近的对象将获得点击。当屏幕上只有 3 或 4 个对象时,此方法有效,但当我有更多对象时,点击会注册到错误的对象。

我想做的是让屏幕上的对象扩展按钮类,这样我就可以在单击它们时将 MotionEvent 传递给它们。但由于我所开设的类(class)的方式,目前我对如何做到这一点感到有点困惑。

是否有人知道有关扩展按钮类以用于移动屏幕对象的教程?

最佳答案

如果我理解正确的话,您正在尝试确定绘制到屏幕上的哪个对象已被单击?

我知道这并不完全是您所要求的,但是当我过去实现自定义 View 时,我通常会像这样处理点击检测:

我获取了您想要可点击的对象的 x 和 y 坐标。在 SurfaceView 类中的 onTouchEvent(MotionEvent event) 方法中,有一些 if 语句来检查单击的 x 和 y 是否在对象的范围内。

这里有一些代码可以更好地说明我的意思:

@Override
public boolean onTouchEvent(MotionEvent event)
{
// If the user touches the space occupied by object1
if(event.getAction() == MotionEvent.ACTION_DOWN
&& event.getX() <= object1.xPosition + object1.width
&& event.getX() >= object1.xPosition
&& event.getY() >= object1.yPosition
&& event.getY() < object1.yPosition + object1.height)
{
// The click was in the bounds of object1's current location
object1.doSomething();
}
// ......
}

希望这是有道理的并且有一定帮助。

关于java - Android-如何让移动的屏幕对象扩展Button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8938194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com