Android得到控件在屏幕中的坐标

Android得到控件在屏幕中的坐标_第1张图片

getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标

getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标 (不是很理解= =、)

getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标

如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些。

[java] view plain copy print ?
  1. package xiaosi.location;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.widget.Button;
  7. import android.widget.ImageView;
  8. public class LocationActivity extends Activity {
  9. /** Called when the activity is first created. */
  10. private ImageView t = null;
  11. private Button button = null;
  12. @Override
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. t = (ImageView)findViewById(R.id.l);
  17. button = (Button)findViewById(R.id.button);
  18. button.setOnClickListener(new buttonListener());
  19. }
  20. public class buttonListener implements OnClickListener{
  21. public void onClick(View v)
  22. {
  23. int[] location = new int[2];
  24. t.getLocationOnScreen(location);
  25. int x = location[0];
  26. int y = location[1];
  27. System.out.println("x:"+x+"y:"+y);
  28. System.out.println("图片各个角Left:"+t.getLeft()+"Right:"+t.getRight()+"Top:"+t.getTop()+"Bottom:"+t.getBottom());
  29. }
  30. }
  31. }


[java] view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6. <Button
  7. android:id="@+id/button"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="button"/>
  11. <ImageView
  12. android:id="@+id/l"
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content"
  15. android:layout_gravity="center"
  16. android:src="@drawable/a" />
  17. </LinearLayout>


http://blog.csdn.net/sjf0115/article/details/7306284

你可能感兴趣的:(Android得到控件在屏幕中的坐标)