android motionevent 坐标,Android开发中MotionEvent坐标获取方法分析

本文实例讲述了android开发中motionevent坐标获取方法。分享给大家供大家参考,具体如下:

android motionevent中getx()与getrawx()都是获取屏幕坐标(横),但二者又有区别

getx()           :   是获取相对当前控件(view)的坐标

getrawx()   :   是获取相对显示屏幕左上角的坐标

演示示例代码

java代码:

public class mainactivity extends activity implements ontouchlistener {

private button btn;

private int x = 0, y = 0;

private int rawx = 0, rawy = 0;

@override

protected void oncreate(bundle savedinstancestate) {

super.oncreate(savedinstancestate);

setcontentview(r.layout.main);

btn = (button) findviewbyid(r.id.btn);

btn.setontouchlistener(this);

}

@override

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.e("homer", "x = " + x + "; y = " + y + "; rawx = " + rawx + "; rawy = " + rawy);

break;

case motionevent.action_up:

break;

}

return false;

}

}

xml 代码:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

tools:context=".mainactivity" >

android:id="@+id/txt"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerhorizontal="true"

android:layout_centervertical="true"

android:text="@string/hello_world" />

android:id="@+id/btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/txt"

android:layout_centerinparent="true"

android:text="button me" />

运行结果:

f70b22377ea0f1b31e5f3715919c9f15.png

点击屏幕中间的button,获取的坐标信息:

5681db50a655ed408f3dce4681ed7281.png

结果说明:

x,y  :  分别获取的相对button控件的坐标 getx(), gety()

rawx,rawy  : 分别获取的相对显示屏幕左上角的坐标 getrawx(), getrawy()

总结:

getx() 是表示widget相对于自身左上角的x坐标,而getrawx()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titlebar或是否全屏幕); gety(),getrawy()一样的道理

希望本文所述对大家android程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值