MotionEvent中getX()和getRawX()的区别
http://blog.csdn.net/ztp800201/article/details/17218067
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;
}
}
而rawx,rawy始终是相对于屏幕的位置。
可知:
getRawX:触摸点相对于屏幕的坐标
getX: 触摸点相对于按钮的坐标
getTop: 按钮左上角相对于父view(LinerLayout)的y坐标
getLeft: 按钮左上角相对于父view(LinerLayout)的x坐标
getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理
MotionEvent中getX()和getRawX()的区别的更多相关文章
- android MotionEvent中getX()和getRawX()的区别
public class Res extends Activity implements View.OnTouchListener { Button btn = null; int x = 0; in ...
- MOTIONEVENT的GETX()和GETRAWX()和VIEW的GETLEFT()3个方法的区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
在Android的View中getX getRawX获取的坐标是不一样的,只是相对比照的对象不一样而已. 1.在View中: getX()是表示Widget相对于自身左上角的x坐标,而getRawX ...
- Android开发之getX,getRawX,getWidth,getTranslationX等的区别
转载请注明出处:http://blog.csdn.net/dmk877/article/details/51550031 好久没写博客了,最近工作确实挺忙的,刚刚结束了一个TV项目的开发,对 ...
- 【转】为什么我们都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- Visual Studio 中 Build 和 Rebuild 的区别
因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ...
- SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方 ...
- java集合中List与set的区别
java集合中List与set的区别. List可以存储元素为有序性并且元素可以相同. set存储元素为无序性并且元素不可以相同. 下面贴几段代码感受一下: ArrayL ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
随机推荐
- IIS错误日志:Failed to execute request because the App-Domain
装上IIS和.net2.0框架后,打开ASP.NET站点,出现Server Application Error,出先此问题,一般先看系统的“事件管理器”,于是查看服务器的“事件管理器”中的“应用程序” ...
- C#基础--属性 字段
访问修饰符: private: 私有成员,在类的内部才可以访问 protected: 受保护的成员,该类内部和继承类的内部可以访问 public: 公共成员, 完全公开, 没有访问限制 interna ...
- 1.6.9 UIMA Integration
1. UIMA 集成 你可以使用solr集成Apache的非结构化信息管理架构(UIMA).UIMA可以让你定义自己的分析引擎通道,逐步添加元数据到文档的标注. 关于Solr UIMA的更多信息,参考 ...
- Java SE ---控制流程:break与continue语句
在java中,可以使用break和continue语句控制循环. 1. break语句:用于终止循环,就是跳出当前循环,执行循环后面的代码. . 2. continue语句:用于跳出当 ...
- MySQL(26):事务的隔离级别出现问题之 幻读
1. 幻读 幻读(Phantom Read)又称为虚读,是指在一个事务内两次查询中数据条数不一致,幻读和不重复读有些类型,同样是在两次查询过程中,不同的是,幻读是由于其他事务做了插入记录的操作,导致记 ...
- iOS - UI - UISegmentedControl
1.UISegmentedControl NSArray * array = @[@"red",@"green",@"yellow",@&q ...
- 基本API-StdIn.java
/************************************************************************* * Compilation: javac StdI ...
- sql语句大全~·留着有用
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- POJ 1733 Parity game (并查集)
Parity game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6816 Accepted: 2636 Descr ...
- BZOJ 3713
Description 斐波那契数列的定义为:k=0或1时,F[k]=k:k>1时,F[k]=F[k-1]+F[k-2].数列的开头几项为0,1,1,2,3,5,8,13,21,34,55,…你 ...