查找textView的坐标

时间:2014-05-19 15:55:52

标签: android

我目前在android中有两个textView个对象,一个是简单的textView,其中包含文本" TextView" (android:id="@+id/touchView"),最后一个是textView我想操纵,并且是这个问题的焦点(android:id="@+id/viewLocat")。

我的目标是让textView viewLocat在活动开始后显示textView touchView的位置坐标。

已更新这是我到目前为止所尝试的内容(我的.java文件如下所示)

package com.example.myfirstapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        View touchView = findViewById(R.id.touchView);
        View viewLocat = findViewById(R.id.viewLocat);
        int[] viewLocation = new int[2];
        touchView.getLocationOnScreen(viewLocation);
        viewLocat.setText("x: " + viewLocation[0] + " y: " + viewLocation[1]);


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;

    }

}

1 个答案:

答案 0 :(得分:0)

获取对控件的引用,如下所示:

View touchView = findViewById(R.id.touchView);
View viewLocat = findViewById(R.id.viewLocat);

一旦你有了对你的观点的引用,你可以像这样得到他们的位置:

int[] viewLocation = new int[2];
touchView.getLocationOnScreen(viewLocation);

int数组中填充了与屏幕相关的视图坐标,无论它与父元素的位置如何。

然后,只需更新viewLocat中的文本以显示坐标:

viewLocat.setText("x: " + viewLocation[0] + " y: " + viewLocation[1]);

这应该让你开始,但我会告诉你要找出哪些事件需要更新文本。