首先我们通过一个button进行一下测试,可以知道:
Java代码
public class Res extends Activity implements View.OnTouchListener {
Button btn = null;
int x = 0;
int y = 0;
int rawx = 0;
int rawy = 0;
/** Called when the activity is first created. */
@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;
}
}
public class Res extends Activity implements View.OnTouchListener {
Button btn = null;
int x = 0;
int y = 0;
int rawx = 0;
int rawy = 0;
/** Called when the activity is first created. */
@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;
}
}
getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理
分享到:
相关推荐
主要介绍了Android MotionEvent中getX()和getRawX()的区别实例详解的相关资料,需要的朋友可以参考下
一个用例MotionEvent.getX()/getRawX/getScrollY()/childView.scrollBy((int) DX, (int) 0),博客地址:https://blog.csdn.net/dreams_deng/article/details/105274141
1.Android移动方式 ... ##MotionEvent.getX(): 获取按下点相对于屏幕原点坐标 MotionEvent.getY(); ## getScrollY(): 里面内容相对于父控件移动距离 // 设置内容移动 // 从左到右 负值, 开始减去结束
Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横),但二者又有区别 getX() : 是获取相对当前控件(View)的坐标 getRawX() : 是获取相对显示屏幕左上角的坐标 演示示例代码 Java代码: public ...
Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横),但二者又有区别 getX() : 是获取相对当前控件(View)的坐标 getRawX() : 是获取相对显示屏幕左上角的坐标
View的onInterceptTouchEvent(MotionEvent ev)和dispatchTouchEvent(MotionEvent ev) 解析
View的onInterceptTouchEvent(MotionEvent ev)和dispatchTouchEvent(MotionEvent ev) 解析
ndroid中的MotionEvent 及其它事件处理
motionevent的使用,其中也包括对OnTouchListener的调用
http://blog.csdn.net/ldoujintianhei/article/details/50189189 这篇博客的demo
主要介绍了Android触屏事件和MotionEvent详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: //按下 Log.d(TAG, "开始位置: " event.getRawX() " " event.getRawY()); mStartX = event....
public boolean onTouch(View arg0, MotionEvent event) { // TODO Auto-generated method stub switch (event.getAction()) { case MotionEvent.ACTION_MOVE: path.lineTo(event.getX(),event.getY()); Draw()...
OnTouchListener方法来自View中的监听事件,可以在监听三个Action事件发生时通过MotionEvent的getX()方法或getY()方法获取到当前触摸的坐标值,来对用户的滑动方向进行判断,并可在不同的Action状态中做出相应的处理...
记录使用Scroller实现平滑滚动,效果图如下: 一、自定义View中实现View的平滑滚动 public class ScrollerView extends View { private Scroller mScroller; private Paint mPaint;... * MotionEvent.getX
Java版水果管理系统源码 CustomView 自定义View大合集 示例 圆形ImageView: 自定义时钟: 水平滚动View: View的滑动: ...怎么样:触控事件MotionEvent中获取坐标-getRawX()和getRawY()。 View坐标系: 是
Title : dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent三者对MotionEvent的分发、拦截机制分析 Author: yaong Category:自己做的Demo Tips : 三个自定义View,依次嵌套,并各自覆写拦截、监听方法,通过...
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,float distanceY) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean ...