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" />
运行结果:
点击屏幕中间的Button,获取的坐标信息:
结果说明:
x,y : 分别获取的相对Button控件的坐标 getX(), getY()
rawX,rawY : 分别获取的相对显示屏幕左上角的坐标 getRawX(), getRawY()
总结:
getX() 是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕); getY(),getRawY()一样的道理
希望本文所述对大家Android程序设计有所帮助。
android motionevent 坐标,Android开发中MotionEvent坐标获取方法分析相关推荐
- 在android开发中使用multdex的方法-IT蓝豹为你整理
在android开发中使用multdex的方法-IT蓝豹为你整理 Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个, ...
- Android记录22-关于开发中账号绑定的逻辑处理
Android记录22-关于开发中账号绑定的逻辑处理 转载请注明:IT_xiao小巫 博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要跟大家分享的是开发中我 ...
- dagger android,在Android开发中使用Dagger2的方法
在Android开发中使用Dagger2的方法 发布时间:2020-12-08 17:12:38 来源:亿速云 阅读:236 作者:Leah 在Android开发中使用Dagger2的方法?相信很多没 ...
- Android 开发中Handle 没有handleMessage方法
Android 开发中Handle 没有handleMessage方法 原因是,导入到包不对,应该导入Android的包 import android.os.Handler; 而不是java的包
- 手机直播系统开发中关于iOS获取图形验证码功能
在手机直播系统开发中关于iOS获取图形验证码功能介绍,首先进入注册页面后请求图形验证码接口获取图形验证码的数字组合,然后加载到相应的页面上,在图形验证码页面我们定义了几个属性,字符串的数量.显示的线条 ...
- android的kotlin通讯录,Android Loader的使用以及手机通讯录的获取方法
Android的主线程中执行长时间操作,导致界面无响应,会引起ANR.如果需要执行较长时间的操作,一般会在另一个线程处理,然后将数据转交给主线程进行显示,Android本身为我们提供了一些机制处理这种 ...
- JS lodash库在开发中常用到的方法
目录 一.摘要 二.常用方法 一.摘要 lodash是JS一个开箱即用的库函数,里面对于在日常开发中常用到的方法都是已经封装好的,使用起来非常方便,本篇记录了在日常开发过程总经常用的方法,就大概记录一 ...
- android java 指针异常处理,Android程序员日常开发中异常总结
CaptainAndroid.png Java异常 平时开发中遇到的java异常很多,因为引起原因一目了然,当然也有不好解决的,比如一个简单的空指针异常你可能始终无法找到其为空的原因,甚至使用前还做了 ...
- Android开发中API的查看方法
方法一:可以使用网页版访问:http://developer.android.com/ 方法二:可以使用本地查看的方法,只需在ADT中安装文件即可,如下图所示点击箭头所示按钮Android SDK M ...
最新文章
- iOS开发UI 篇—CAlayer层的属性
- pythondes加密盒子_PYTHON实现DES加密及base64源码
- Tensorflow详解保存模型(进阶版一):如何有选择的保存变量
- list python 访问 键值对_基础|Python常用知识点汇总(中)
- redis——sentinel
- cuda线程束原语 __shfl_xor、__shfl、__shfl_up()、__shfl_down()
- Please, commit your changes or stash them before you can merge.
- 4 SAP权限PFCG操作手册
- Codeforces Round #186 (Div. 2) Problem D 动态规划
- pandas 如何删掉第一行_Pandas-数据筛选
- 目标识别:如何从人脸图片中扣出眼图,实时人脸人眼检测和识别
- windows 2003 iis 360防黑加固后不能使用
- 亮相SIGGRAPH 太极拳三维教学App制作揭秘
- 十大推荐提交的安卓市场
- Re: 客户协作 OVER 合同谈判
- 还在吐槽翻译的外版书质量差吗?谈谈我个人的理解
- init_modue和finit_module
- 微信蓝牙设备连接不上原因总结(5)
- Android签名 (三) 应用签名实操
- Restful风格设计