兔狗装修,到异界泡妞去txt,菜缸公主
android motionevent中getx()和getrawx()的区别实例详解
实例代码:
public class res extends activity implements view.ontouchlistener { button btn = null; int x = 0; int y = 0; int rawx = 0; int rawy = 0; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); btn = (button) findviewbyid(r.id.button); btn.setontouchlistener(this); } public boolean ontouch(view view, motionevent event) { int eventaction = event.getaction(); switch (eventaction) { case motionevent.action_down: break; case motionevent.action_move: x = (int) event.getx(); y = (int) event.gety(); rawx = (int) event.getrawx(); rawy = (int) event.getrawy(); log.d("debug", "getx=" + x + "gety=" + y + "n" + "getrawx=" + rawx + "getrawy=" + rawy + "n"); break; case motionevent.action_up: break; } return false; } }
结论:
当你触到按钮时,x,y是相对于该按钮左上点(控件本身)的相对位置。
而rawx,rawy始终是相对于屏幕的位置。
可知:
可以想象 getright()等同于下面的计算:getleft()+getwidth()。
getx()是表示widget相对于自身左上角的x坐标,而getrawx()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titlebar或是否全屏幕),gety(),getrawy()一样的道理
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论