タッチパネルを利用したプログラムをつくるときは、
onTouchEvent()メソッドを利用します。
シングルタッチ対応の場合は、以下のような処理を加えます。
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//処理
break;
case MotionEvent.ACTION_UP:
//処理
break;
case MotionEvent.ACTION_MOVE:
//処理
break;
case MotionEvent.ACTION_CANCEL:
//処理
break;
}
return super.onTouchEvent(event);
}
ACTION_DOWN: タッチパネルを押した場合
ACTION_MOVE: タッチパネルを押したままスライドさせた場合
ACTION_UP: タッチパネルから指を持ち上げた場合
ACTION_CANCEL: 今のイベントが中止された場合
タッチされたときにタッチイベント名を表示するサンプルをつくってみました。
画面をタッチすると
このサンプルの作り方は、
まず、新しいプロジェクトを作り、
できたプロジェクトからSample.javaとmain.xmlを
以下のように変更します。
*src/com.example.android.sample/Sample.javaの変更後の全ソース:
package com.example.android.sampletwo; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; public class SampleTwo extends Activity { private TextView aTextView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //フルスクリーン処理 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); } @Override public boolean onTouchEvent(MotionEvent event) { aTextView = (TextView) findViewById(R.id.myTextView); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: aTextView.setText("ACTION_DOWN"); break; case MotionEvent.ACTION_UP: aTextView.setText("ACTION_UP"); break; case MotionEvent.ACTION_MOVE: aTextView.setText("ACTION_MOVE"); break; case MotionEvent.ACTION_CANCEL: aTextView.setText("ACTION_CANCEL"); break; } return super.onTouchEvent(event); } }
*res/layout/main.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" > <TextView android:id="@+id/myTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
コメント