Bal*_*i.K 8 android android-layout android-view
我想在显示屏上找到视图的位置.
要做到这一点,我用的方法,如view.getLeft(),view.getBottom(),view.getRight(),view.getTop().但不幸的是,所有这些方法都被退回了0.
有没有其他方法可以找到视图的位置(即屏幕上的坐标)?
我的布局main.xml:
<TextView android:id="@+id/tv1"
android:layout_width="200px"
android:layout_height="30px"
android:text="welcome to" />
<TextView android:id="@+id/tv2"
android:layout_width="200px"
android:layout_height="30px"
android:text=" Make Eit solution " />
Run Code Online (Sandbox Code Playgroud)
我的班级有这个onCreate():
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
System.out.println("tv4 width:"+tv2.getWidth());
System.out.println("tv4 height:"+tv2.getHeight());
System.out.println("Right:"+tv2.getRight());
System.out.println("Left:"+tv2.getLeft());
System.out.println("Top:"+tv2.getTop());
System.out.println("Bottom:"+tv2.getBottom());
Run Code Online (Sandbox Code Playgroud)
使用getLeft(),getRight(),getTop(),和getBottom().这些可以在实例化视图后使用.
你写的方法足以在屏幕上找到位置,但是你写的地方不正确.
尝试在onWindowFocusChanged(boolean hasFocus)方法中编写方法(view.getLeft(),view.getTop()...等).
例如...
**
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
System.out.println("Right:"+tv2.getRight());
System.out.println("Left:"+tv2.getLeft());
System.out.println("Top:"+tv2.getTop());
}
}
Run Code Online (Sandbox Code Playgroud)
**
它会解决你的问题.
| 归档时间: |
|
| 查看次数: |
39029 次 |
| 最近记录: |