getX getRawX的区别
来源:互联网 发布:淘宝质量好的女装品牌 编辑:程序博客网 时间:2024/05/17 22:50
在学习android时候,看到MotionEvent类里有两个方法,getX getRawX,看解释,很模糊,看不太懂,这到底什么意思?肯定有区别.具体什么区别呢?
一看,两个函数都是返回了整型直,那好办了,把这两个直打印出来,分析下,估计能有收获.好.问题是怎么把这两个直打印出来呢?
哎,这就要求系统不断的丢出MotionEvent,这好办,上篇文章不写了,具体看代码,代码是最好的说明.
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Res extends Activity implements View.OnTouchListener {
Button btn = null;
ImageView control;
int x=0;
int y=0;
int rawx=0;
int rawy=0;
ImageView mouse=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mouse=(ImageView)findViewById(R.id.imageview);
btn=(Button)findViewById(R.id.button);
btn.setOnTouchListener(this);
// mGestureDetector = new GestureDetector(this, new LearnGestureListener());
}
public boolean onTouch(View view, MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.qisda changerACTION_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"+"suzhou zangchunjie"+"getRawX="+rawx+"getRawY="+rawy+"/n");
break;
case MotionchangerEvent.ACTION_UP:
break;
}
return false;
}
}
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageview"
android:src="@drawable/bitmap"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:text="press"
android:layout_gravity="right"
/>
</LinearLayout>
这样通过打印直就可以比较结果了.
具体结果如下:
01-06 02:20:35.862: DEBUG/DEBUG(716): getX=22getY=10
01-06 02:20:35.862: DEBUG/DEBUG(716): getRawX=286getRawY=286
01-06 02:20:35.893: DEBUG/DEBUG(716): getX=23getY=10
01-06 02:20:35.893: DEBUG/DEBUG(716): getRawX=287getRawY=286
01-06 02:20:35.991: DEBUG/DEBUG(716): getX=24getY=10
01-06 02:20:35.991: DEBUG/DEBUG(716): getRawX=288getRawY=286
01-06 02:20:36.023: DEBUG/DEBUG(716): getX=25getY=10
01-06 02:20:36.023: DEBUG/DEBUG(716): getRawX=289getRawY=286
01-06 02:20:36.093: DEBUG/DEBUG(716): getX=26getY=10
01-06 02:20:36.093: DEBUG/DEBUG(716): getRawX=290getRawY=286
01-06 02:20:36.121: DEBUG/DEBUG(716): getX=27getY=10
01-06 02:20:36.121: DEBUG/DEBUG(716): getRawX=291getRawY=286
01-06 02:20:36.242: DEBUG/DEBUG(716): getX=28getY=10
01-06 02:20:36.242: DEBUG/DEBUG(716): getRawX=292getRawY=286
这就比较明显了,我画的是直线,getX是获取以widget左上角为坐标原点计算的X轴坐标直.
getRawX 获取的是以屏幕左上角为坐标原点计算的X轴坐标直.
不错吧,如果有收获,赶紧回帖吧. 学到了东西要表示感谢,你光看不感谢不好吧,毕竟我也付出了劳动,你也得到了收获.要尊重我的劳动啊,我也不容易的.
引用自:http://blog.csdn.net/chenyongsuda/article/details/5993151
一看,两个函数都是返回了整型直,那好办了,把这两个直打印出来,分析下,估计能有收获.好.问题是怎么把这两个直打印出来呢?
哎,这就要求系统不断的丢出MotionEvent,这好办,上篇文章不写了,具体看代码,代码是最好的说明.
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Res extends Activity implements View.OnTouchListener {
Button btn = null;
ImageView control;
int x=0;
int y=0;
int rawx=0;
int rawy=0;
ImageView mouse=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mouse=(ImageView)findViewById(R.id.imageview);
btn=(Button)findViewById(R.id.button);
btn.setOnTouchListener(this);
// mGestureDetector = new GestureDetector(this, new LearnGestureListener());
}
public boolean onTouch(View view, MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.qisda changerACTION_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"+"suzhou zangchunjie"+"getRawX="+rawx+"getRawY="+rawy+"/n");
break;
case MotionchangerEvent.ACTION_UP:
break;
}
return false;
}
}
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageview"
android:src="@drawable/bitmap"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:text="press"
android:layout_gravity="right"
/>
</LinearLayout>
这样通过打印直就可以比较结果了.
具体结果如下:
01-06 02:20:35.862: DEBUG/DEBUG(716): getX=22getY=10
01-06 02:20:35.862: DEBUG/DEBUG(716): getRawX=286getRawY=286
01-06 02:20:35.893: DEBUG/DEBUG(716): getX=23getY=10
01-06 02:20:35.893: DEBUG/DEBUG(716): getRawX=287getRawY=286
01-06 02:20:35.991: DEBUG/DEBUG(716): getX=24getY=10
01-06 02:20:35.991: DEBUG/DEBUG(716): getRawX=288getRawY=286
01-06 02:20:36.023: DEBUG/DEBUG(716): getX=25getY=10
01-06 02:20:36.023: DEBUG/DEBUG(716): getRawX=289getRawY=286
01-06 02:20:36.093: DEBUG/DEBUG(716): getX=26getY=10
01-06 02:20:36.093: DEBUG/DEBUG(716): getRawX=290getRawY=286
01-06 02:20:36.121: DEBUG/DEBUG(716): getX=27getY=10
01-06 02:20:36.121: DEBUG/DEBUG(716): getRawX=291getRawY=286
01-06 02:20:36.242: DEBUG/DEBUG(716): getX=28getY=10
01-06 02:20:36.242: DEBUG/DEBUG(716): getRawX=292getRawY=286
这就比较明显了,我画的是直线,getX是获取以widget左上角为坐标原点计算的X轴坐标直.
getRawX 获取的是以屏幕左上角为坐标原点计算的X轴坐标直.
不错吧,如果有收获,赶紧回帖吧. 学到了东西要表示感谢,你光看不感谢不好吧,毕竟我也付出了劳动,你也得到了收获.要尊重我的劳动啊,我也不容易的.
引用自:http://blog.csdn.net/chenyongsuda/article/details/5993151
0 0
- getX getRawX的区别
- getX getRawX的区别
- getX getRawX的区别
- getX(),getRawX(),getLeft()的区别
- getX()和getRawX()的区别
- getX()和getRawX()的区别
- getRawX和getX的区别
- MotionEventJ的getX()与getRawX()的区别
- MotionEvent的getX()和getRawX()的区别
- MotionEvent中getX()和getRawX()的区别
- MotionEvent的getX()与getRawX()区别
- MotionEvent的getX()与getRawX()区别
- MotionEvent中getX()和getRawX()的区别
- MotionEvent中getX()和getRawX()的区别
- android MotionEvent getX getRawX getScrollX 的区别
- MotionEvent中getX()跟getRawX()的区别
- MotionEvent中getX()和getRawX()的区别
- MotionEvent中getX()和getRawX()的区别
- COdeforces 555 A. Case of Matryoshkas
- memcache内存估算整理
- UIDatePicker控件
- nyoj-1084美丽的校园(二) 【线性规划】
- ios远程推送消息时运行在前台怎么处理
- getX getRawX的区别
- java多线程(九)线程中断
- 医学信息标准
- Online Judge System For SzNOI 题库 语法百题 c++ d028
- 【冀宝er要逆袭】HDU-4287-Intelligent IME
- Python网络编程(Socket)
- 更换STM32芯片类型引起keil下载Error Flash download failed-Cortex-M3问题的解决
- MFC打开文件对话框
- apache服务器如何配置多站点