我目前在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;
}
}
答案 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]);
这应该让你开始,但我会告诉你要找出哪些事件需要更新文本。