gpt4 book ai didi

android - 使用 x,y 坐标查找布局

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:31 25 4
gpt4 key购买 nike

我有一个应用程序,其中包含适用于 Android 的自定义按钮。我想让用户重新排列这些按钮,例如主页或应用程序面板的图像按钮。

我对此进行了研究,发现我可以使用拖放功能与用户的 Action 进行交互。但就我而言,父布局可能不同。 OnMove 或 OnDrop 事件,我需要在相应的布局中实际移动该按钮。

所以问题是如何找到包含坐标 x 和 y 的布局并将按钮放入其中。

@Override
public boolean onTouchEvent(MotionEvent event) {


switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
status = START_DRAGGING;
break;
case MotionEvent.ACTION_UP:
status = STOP_DRAGGING;
break;
case MotionEvent.ACTION_MOVE:
if(status == START_DRAGGING){
//parentLayout.setPadding((int)event.getRawX(), 0,0,0);
//**What to do here**
parentLayout.invalidate();
}
break;

}

return true;
}

最佳答案

您可以遍历父容器中的所有控件,并将每个子容器的边界与当前的 X、Y 进行比较。您可以通过调用此方法获取 View 边界:

View.getHitRect()

所以像这样:

for(View v : parent.children())
{
// only checking ViewGroups (layout) obviously you can change
// this to suit your needs
if(!(v instanceof ViewGroup))
continue;

if(v.getHitRect().contains(x, y))
return v;
}

这只是伪代码,需要根据您使用的任何内容进行调整(即为嵌套控件添加递归)。

希望对您有所帮助。

关于android - 使用 x,y 坐标查找布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8329993/

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