歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android得到控件在屏幕中的坐標

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

日期:2017/3/1 10:27:41   编辑:Linux編程

getLocationOnScreen ,計算該視圖在全局坐標系中的x,y值,(注意這個值是要從屏幕頂端算起,也就是索包括了通知欄的高度)//獲取在當前屏幕內的絕對坐標

getLocationInWindow ,計算該視圖在它所在的widnow的坐標x,y值,//獲取在整個窗口內的絕對坐標 (不是很理解= =、)

getLeft , getTop, getBottom, getRight, 這一組是獲取相對在它父親裡的坐標

如果在Activity的OnCreate()事件輸出那些參數,是全為0,要等UI控件都加載完了才能獲取到這些。

  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. }

  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>

Copyright © Linux教程網 All Rights Reserved