Google のドキュメントから
getX()メソッド:
このビューの視覚的な x 位置 (ピクセル単位)。これは、translationX プロパティに現在の left プロパティを加えたものと同じです。
setTranslationX()メソッド:
このビューの左位置に対する水平位置を設定します。これにより、オブジェクトのレイアウトによって配置された場所に加えて、レイアウト後にオブジェクトが効果的に配置されます。
getLeft()メソッド:
親に対するこのビューの左の位置。
したがって、getX() は、親に対するビューの水平位置を返します。
アップデート:
あなたが得る結果はevent.getX()
、親に対しても相対的です。水平方向に中央揃えの RelativeLayout 内にボタンを配置することで簡単なテストを実行し、ボタンをクリックしたときに値を確認できます。
あなたのレイアウトxmlで:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_centerHorizontal="true">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</RelativeLayout>
あなたの活動で:
mBtn = ((Button) findViewById( R.id.button1 ));
mBtn.setOnTouchListener( new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("", "getX = " + event.getX());
return false;
}
});
左マージンのボタンをクリックすると、0.0 に近い値が得られます。