2013-11-22 92 views
1

我有一个按钮,在相对布局的坐标处创建文本视图,我想要做的是检查是否已在该位置创建文本视图,以便我可以创建文本视图在其他地方。Android查看位置视图

总结起来,我的问题是如何检查另一个视图是否在位置x和y? 这里是创建代码:

@Override 
    public void onClick(View v) { 
    DragTextView textview = MainActivity.createTextView(context); 
    textview.setX(getX()+getWidth()+30); 
    textview.setY(getY()+getHeight()+30); 
} 
+1

如果你总是设置位置然后保留一个'List'或'HashMap'来跟踪视图的位置。然后,当绘制另一个视图时,检查这个'List'或'HashMap'来查看在该位置是否已经有另一个视图。 –

+0

Android是否具有用于这种检查的内置函数?因为手动检查每个视图的位置和边界对我来说是一项非常乏味的任务。 –

回答

0

看看这可以帮助你。我得到这个解决方案提供了视图的坐标。在一些集合对象存储这个值,并把视图

Getting View's coordinates relative to the root layout

How to get screen cordinates corresponding to the whole screen, and not the View touched?

+0

我觉得getX()和Y符合目的,因为我需要根据父布局而不是屏幕的坐标,我使用了2d ScrollView,这意味着布局可以比屏幕延伸得更远(约2000在宽度和高度) –

1

此示例代码可以帮助你之前指同...

int left = textView.getLeft(); 
    int right = textView.getRight(); 
    int top = textView.getTop(); 
    int bottom = textView.getBottom(); 
    Rect rect = new Rect(left, top, right, bottom); 
    int x = 200; 
    int y = 250; 
    if(rect.contains(x, y)) { 
     Log.i(TAG, "TextView occupied (200,250) position"); 
    } 
+0

谢谢,我不知道的Rect类,我想我会在相对布局中的所有孩子使用for循环,并检查每个人的Rect,看看他们中的任何一个相交。 –