Android MotionEvent中getX()和getRawX()的区别实例详解
发布时间 - 2026-01-11 00:15:51 点击率:次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始终是相对于屏幕的位置。
可知:
- getRowX:触摸点相对于屏幕的坐标
- getX: 触摸点相对于按钮的坐标
- getTop: 按钮左上角相对于父view(LinerLayout)的y坐标
- getLeft: 按钮左上角相对于父view(LinerLayout)的x坐标
可以想象 getRight()等同于下面的计算:getLeft()+getWidth()。
getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# MotionEvent中getX()和getRawX()的区别
# MotionEvent
# 获取坐标
# 札记:android手势识别功能实现(利用MotionEvent)
# Android开发中MotionEvent坐标获取方法分析
# Android触屏事件和MotionEvent详解
# 相对于
# 当你
# 希望能
# 谢谢大家
# 坐标值
# Override
# void
# rawy
# null
# btn
# rawx
# int
# onCreate
# findViewById
# main
# button
# id
# layout
# savedInstanceState
# Bundle
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用狗爹虚拟主机快速搭建网站?
如何用PHP工具快速搭建高效网站?
如何用低价快速搭建高质量网站?
如何在IIS7中新建站点?详细步骤解析
昵图网官方站入口 昵图网素材图库官网入口
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
在线制作视频网站免费,都有哪些好的动漫网站?
微信小程序 input输入框控件详解及实例(多种示例)
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何注册花生壳免费域名并搭建个人网站?
Python高阶函数应用_函数作为参数说明【指导】
C#如何调用原生C++ COM对象详解
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
JavaScript模板引擎Template.js使用详解
Java垃圾回收器的方法和原理总结
北京网站制作的公司有哪些,北京白云观官方网站?
Laravel PHP版本要求一览_Laravel各版本环境要求对照
如何选择PHP开源工具快速搭建网站?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Laravel如何配置任务调度?(Cron Job示例)
想要更高端的建设网站,这些原则一定要坚持!
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
详解Oracle修改字段类型方法总结
如何在万网主机上快速搭建网站?
如何构建满足综合性能需求的优质建站方案?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
如何用虚拟主机快速搭建网站?详细步骤解析
JS经典正则表达式笔试题汇总
java中使用zxing批量生成二维码立牌
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
HTML 中动态设置元素 name 属性的正确语法详解
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
如何在IIS服务器上快速部署高效网站?
焦点电影公司作品,电影焦点结局是什么?
Python制作简易注册登录系统
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?

