Androidアプリ開発入門のFAQとおすすめアンドロイドアプリ・ゲーム紹介サイトです。

onTouchEvent()メソッド

2011年6月9日(木) 11:03 AM

タッチパネルを利用したプログラムをつくるときは、

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: 今のイベントが中止された場合

タッチされたときにタッチイベント名を表示するサンプルをつくってみました。

onTouchEvent画像1

画面をタッチすると

onTouchEvent画像2

このサンプルの作り方は、

まず、新しいプロジェクトを作り、

できたプロジェクトから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>

コメントを残す

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

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

コメントの更新情報

トラックバックURL

http://www.appli-info.jp/archives/764/trackback

* RSS FEED

広告