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

丈夫欲遂平生志,一载寒窗一举汤。这篇文章主要讲述Android得到控件在屏幕中的坐标相关的知识,希望能为你提供帮助。

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

文章图片

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

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

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

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


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

 
[java] view plain copy
  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.    
  7.         < Button   
  8.                 android:id="@+id/button"   
  9.                 android:layout_width="fill_parent"   
  10.                 android:layout_height="wrap_content"   
  11.                 android:text="button"/>    
  12.         < ImageView   
  13.                 android:id="@+id/l"   
  14.                 android:layout_width="wrap_content"   
  15.                 android:layout_height="wrap_content"   
  16.                 android:layout_gravity="center"   
  17.                 android:src="https://www.songbingjia.com/android/@drawable/a"  />    
  18. < /LinearLayout>    

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

文章图片












    推荐阅读