`
liujianguangaaa
  • 浏览: 230765 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

android 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轴坐标直.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics