【Android】onFlingでフリック時の移動距離を取得する

onFlingでフリック時の移動距離を取得する場合、
velocityY,velocityXで取得することができる。

■フリック長さ取得サンプル■

【FlingTest.java】

public class FlingTest extends Activity {
	
	private TextView textView_x;
	private TextView textView_y;
	// 縦横フリック値トータル
	float x_total = 0;
	float y_total = 0;

	private GestureDetector mGestureDetector;

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

		mGestureDetector = new GestureDetector(this, mOnGestureListener);
		textView_x = (TextView)findViewById(R.id.textView1);
		textView_y = (TextView)findViewById(R.id.textView2);
    }

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		return mGestureDetector.onTouchEvent(event);
	}

	private final SimpleOnGestureListener mOnGestureListener = new SimpleOnGestureListener() {
		@Override
		public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        	
			// velocityでフリックの距離を取得
			float xxx = x_total - velocityX;
			float yyy = y_total - velocityY;
			x_total = xxx;
			y_total = yyy;
			// textViewで表示
			textView_x.setText( "横フリック値: " + x_total );
			textView_y.setText( "縦フリック値: " + y_total );
			return true;
		}
	};
}

一応、レイアウトファイルも、
【main.xml】

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >
	<TextView
		android:id="@+id/textView1"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="TextView" />
	<TextView
		android:id="@+id/textView2"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="TextView" />
</LinearLayout>

onflingでフリック距離を取得

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>