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始终是相对于屏幕的位置。





可知:

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中的屏幕方向
  5. android 支持宽屏
  6. android 支持宽屏
  7. Android实现动态改变屏幕方向(Landscape & Portrait)
  8. Android坐标系、视图坐标系与触控事件(MotionEvent)
  9. android矢量图vector的简单介绍

随机推荐

  1. 关于LayoutParams的使用经验
  2. android 检测当前网络并调用系统设置
  3. RN 执行打包 ./gradlew assembleRelease
  4. 实例教程一:电话拨号器
  5. android 界面自适应屏幕尺寸相关
  6. android DataBind LiveData ViewModel 使
  7. Android中this.*与*.this还有*.class的区
  8. Android(安卓)- how to completely disab
  9. android关于fragment的构造函数用法建议
  10. Android(安卓)中handlemessage方法获取数