歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android MotionEvent 坐標獲取

Android MotionEvent 坐標獲取

日期:2017/3/1 9:59:06   编辑:Linux編程

Android MotionEvent中getX()與getRawX()都是獲取屏幕坐標(橫),但二者又有區別

getX() : 是獲取相對當前控件(View)的坐標

getRawX() : 是獲取相對顯示屏幕左上角的坐標

演示示例代碼

Java代碼:

public class MainActivity extends Activity implements OnTouchListener {
private Button btn;
private int x = 0, y = 0;
private int rawX = 0, rawY = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btn = (Button) findViewById(R.id.btn);
btn.setOnTouchListener(this);
}

@Override
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.e("homer", "x = " + x + "; y = " + y + "; rawX = " + rawX + "; rawY = " + rawY);
break;

case MotionEvent.ACTION_UP:
break;
}

return false;
}
}

xml 代碼:

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

<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txt"
android:layout_centerInParent="true"
android:text="button me" />
</RelativeLayout>

運行結果:

結果說明:

x,y : 分別獲取的相對Button控件的坐標 getX(), getY()

rawX,rawY : 分別獲取的相對顯示屏幕左上角的坐標 getRawX(), getRawY()

總結:

getX() 是表示Widget相對於自身左上角的x坐標,而getRawX()是表示相對於屏幕左上角的x坐標值(注意:這個屏幕左上角是手機屏幕左上角,不管activity是否有titleBar或是否全屏幕); getY(),getRawY()一樣的道理。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved