タッチパネルの位置情報を調べるには、onTouchEventメソッド内で、
event.getX()
event.getY()
を使います。パネルのタッチしているX座標とY座標がわかります。
ブログ記事「char配列を、String変数に変換する」のサンプルに、タッチパネルの位置情報を表示する機能を加えてみました。
画面をタッチすると
*src/com.example.android.sample/Sample.javaの変更後の全ソース:
package com.example.android.sampletwo; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; public class SampleTwo extends Activity { private TextView aTextView; private TextView bTextView; private char[] charactor = new char[4]; private String moji; private int x, y; /** 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); bTextView = (TextView) findViewById(R.id.myTextPosition); x = (int)event.getX(); y = (int)event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: charactor[0] = (char)(68); //D charactor[1] = (char)(79); //O charactor[2] = (char)(87); //W charactor[3] = (char)(78); //N moji = String.valueOf(charactor); aTextView.setText(moji); bTextView.setText("X:" + x + " Y:" + y); break; case MotionEvent.ACTION_UP: charactor[0] = (char)(85); //U charactor[1] = (char)(80); //P charactor[2] = (char)(32); //スペース charactor[3] = (char)(32); //スペース moji = String.valueOf(charactor); aTextView.setText(moji); bTextView.setText("X:" + x + " Y:" + y); break; case MotionEvent.ACTION_MOVE: charactor[0] = (char)(77); //M charactor[1] = (char)(79); //O charactor[2] = (char)(86); //V charactor[3] = (char)(69); //E moji = String.valueOf(charactor); aTextView.setText(moji); bTextView.setText("X:" + x + " Y:" + y); 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" /> <TextView android:id="@+id/myTextPosition" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/position" /> </LinearLayout>
*res/values/strings.xmlの変更後の全ソース:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, SampleTwo!</string> <string name="app_name">Sample02</string> <string name="position">X:00 Y:00</string> </resources>
その他のソースコードは、ブログ記事「char配列を、String変数に変換する」のサンプルと同じです。
コメント