0
点赞
收藏
分享

微信扫一扫

getX getRawX的区别


在学习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轴坐标直.

不错吧,如果有收获,赶紧回帖吧. 学到了东西要表示感谢,你光看不感谢不好吧,毕竟我也付出了劳动,你也得到了收获.要尊重我的劳动啊,我也不容易的.

举报

相关推荐

0 条评论