MotionEvent的getRawX和getX方法的区别

简介: main.xml如下:   MainActivity如下: package cn.testtouchevent;import android.

main.xml如下:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="测试MotionEvent的 getRawX(Y)()和 getX(Y)()方法 "
        android:layout_centerHorizontal="true"
    />
    <Button
        android:id="@+id/button" 
        android:layout_width="220dip"
        android:layout_height="180dip"
        android:text="Touch    ME "
        android:layout_centerInParent="true"
     />

</RelativeLayout>

 

MainActivity如下:

package cn.testtouchevent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.app.Activity;
/**
 * Demo描述:
 * 测试MotionEvent的 getRawX(Y)()和 getX(Y)()两个
 * 方法的区别
 * 
 * 测试结果:
 * getX(Y)    表示的是相对于控件自身左上角的坐标
 * getRawX(Y) 表示的是相对于设备屏幕左上角的坐标
 */
public class MainActivity extends Activity {
    private Button mButton;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}
	private void init(){
		mButton=(Button) findViewById(R.id.button);
		mButton.setOnTouchListener(new TouchListenerImpl());
	}
	private class TouchListenerImpl implements OnTouchListener{
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			switch (event.getAction()) {
			case MotionEvent.ACTION_DOWN:
				float x=+event.getX();
				float rawX=+event.getRawX();
				float y=+event.getY();
				float rawY=+event.getRawY();
				System.out.println("x="+x+",rawX="+rawX);
				System.out.println("y="+y+",rawY="+rawY);
				break;
			default:
				break;
			}
			return false;
		}
		
	}
}


 

相关文章
|
6月前
onkeydown、onkeypress、onkeyup的区别
onkeydown、onkeypress、onkeyup的区别
|
Android开发
深入理解Window && WindowManager本质
引言 Window 是类似悬浮窗的东西 WM 参与 Window 的 Create 和 管理, WMS 和 WM 共同完成 Window 的 IPC交互 Window 是 View 直接 管理者 Activity 的 setContenView 底层是由PhoneWindow的installDecor绘制的.
78 0
深入理解Window && WindowManager本质
|
前端开发
View#invalidate是如何调用当前View#onDraw方法的?
View#invalidate是如何调用当前View#onDraw方法的?
|
XML 数据格式
从源码角度理解FrameLayout#onMeasure对child的measure调用次数
从源码角度理解FrameLayout#onMeasure对child的measure调用次数
|
XML Android开发 数据格式
从源码角度理解LinearLayout#onMeasure对child的measure调用次数
从源码角度理解LinearLayout#onMeasure对child的measure调用次数
|
Android开发 开发者
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(二)
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(二)
344 0
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(二)
|
Android开发
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(一)
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(一)
532 0
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(一)
|
Android开发
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(三)
【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )(三)
300 0
|
Android开发
Android中onInterceptTouchEvent、dispatchTouchEvent及onTouchEvent的调用顺序及内部原理
终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 在Android中需要经常对用户手势进行判断,在判断手势时需要精细的分清楚每个触摸事件以及每个View对事件的接收情况,在View,ViewGroup,Activity中都可以接收事件,在对事件进行处理时onInterceptTouchEvent、dispatchTouchEvent及onTouchEvent这三个函数的调用顺序及关系需要好好理清楚。
1157 0