http://blog.csdn.net/ztp800201/article/details/17218067

http://blog.csdn.net/ztp800201/article/details/17218067

http://blog.csdn.net/ztp800201/article/details/17218067

http://blog.csdn.net/ztp800201/article/details/17218067

http://blog.csdn.net/ztp800201/article/details/17218067



android MotionEvent中getX()和getRawX()的区别

分类:Android 1294人阅读 评论(1) 收藏 举报
  1. publicclassResextendsActivityimplementsView.OnTouchListener{
  2. Buttonbtn=null;
  3. intx=0;
  4. inty=0;
  5. intrawx=0;
  6. intrawy=0;
  7. @Override
  8. publicvoidonCreate(BundlesavedInstanceState){
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.main);
  11. btn=(Button)findViewById(R.id.button);
  12. btn.setOnTouchListener(this);
  13. }
  14. publicbooleanonTouch(Viewview,MotionEventevent){
  15. inteventaction=event.getAction();
  16. switch(eventaction){
  17. caseMotionEvent.ACTION_DOWN:
  18. break;
  19. caseMotionEvent.ACTION_MOVE:
  20. x=(int)event.getX();
  21. y=(int)event.getY();
  22. rawx=(int)event.getRawX();
  23. rawy=(int)event.getRawY();
  24. Log.d("DEBUG","getX="+x+"getY="+y+"n"+"getRawX="+rawx
  25. +"getRawY="+rawy+"n");
  26. break;
  27. caseMotionEvent.ACTION_UP:
  28. break;
  29. }
  30. returnfalse;
  31. }
  32. }



结论:
当你触到按钮时,x,y是相对于该按钮左上点(控件本身)的相对位置。
而rawx,rawy始终是相对于屏幕的位置。



android MotionEvent中getX()和getRawX()的区别_第1张图片

可知:

getRowX:触摸点相对于屏幕的坐标
getX: 触摸点相对于按钮的坐标
getTop: 按钮左上角相对于父view(LinerLayout)的y坐标
getLeft: 按钮左上角相对于父view(LinerLayout)的x坐标

可以想象 getRight()等同于下面的计算:getLeft()+getWidth()。

getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理




http://blog.csdn.net/ztp800201/article/details/17218183

http://blog.csdn.net/ztp800201/article/details/17218183

http://blog.csdn.net/ztp800201/article/details/17218183

http://blog.csdn.net/ztp800201/article/details/17218183

http://blog.csdn.net/ztp800201/article/details/17218183

android获得控件在屏幕中的绝对坐标 getLocationInWindow 和 getLocationOnScreen

分类:Android 1857人阅读 评论(0) 收藏 举报

int[] location = new int[2] ;
view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标
view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标
location [0]--->x坐标,location [1]--->y坐标

getLocationOnScreen

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

getLocationInWindow,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标

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









http://blog.csdn.net/ztp800201/article/details/16862125

http://blog.csdn.net/ztp800201/article/details/16862125


http://blog.csdn.net/ztp800201/article/details/16862125

http://blog.csdn.net/ztp800201/article/details/16862125

http://blog.csdn.net/ztp800201/article/details/16862125


Android View.VISIBLE、INVISIBLE、GONE的区别

分类:Android 216人阅读 评论(0) 收藏 举报

android中UI应用的开发中经常会使用view.setVisibility()来设置控件的可见性,其中该函数有3个可选值,他们有着不同的含义:

View.VISIBLE--->可见
View.INVISIBLE--->不可见,但这个View仍然会占用在xml文件中所分配的布局空间,不重新layout
View.GONE---->不可见,但这个View在ViewGroup中不保留位置,会重新layout,不再占用空间,那后面的view就会取代他的位置,


所以在使用时要小心,尤其要善用INVISIBLE和GONE;









更多相关文章

  1. 去掉android的屏幕上的title bar
  2. 详解Android中的屏幕方向
  3. android屏幕截图
  4. Android坐标系、视图坐标系与触控事件(MotionEvent)
  5. Android实现动态改变屏幕方向(Landscape & Portrait)
  6. android屏幕监视工具 android screen monitor使用
  7. android屏幕页面实现滚动,页面跳…

随机推荐

  1. 今天学习到了那些东西
  2. 在Android studio 项目中使用 9patch常见
  3. android中Rect类的使用
  4. Android 动画监听器
  5. 详解Android读取本地图片和网络图片的方
  6. Android Intent 序列化和反序列化
  7. android ui进阶教程
  8. (Android)画个钟看看
  9. Android 开发-Android studio 笔记
  10. Android 子view超出父View效果