▼Androidメモ▼
キーイベントの処理


キーイベントの処理を行うプログラムを作成する。



ソースコード
KeyEx.java
package net.npaka.keyex;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

//キーイベントの処理
public class KeyEx extends Activity {
    //アプリの初期化
    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(new KeyView(this));
    }
}

KeyView.java
package net.npaka.keyex;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.KeyEvent;
import android.view.View;

//キーイベントの処理
public class KeyView extends View {
    private int keyCode=-999;//キーコード
    
    //コンストラクタ
    public KeyView(Context context) {
        super(context);
        setBackgroundColor(Color.WHITE);

        //フォーカス指定
        setFocusable(true);
        setFocusableInTouchMode(true);
    }
    
    //描画
    @Override 
    protected void onDraw(Canvas canvas) {
        //ペイント
        Paint paint=new Paint();       
        paint.setAntiAlias(true);
        paint.setTextSize(32);
        
        //キーコードの描画
        String str="";
        if (keyCode==KeyEvent.KEYCODE_DPAD_UP)    str="DPAD_UP";
        if (keyCode==KeyEvent.KEYCODE_DPAD_DOWN)  str="DPAD_DOWN";
        if (keyCode==KeyEvent.KEYCODE_DPAD_LEFT)  str="DPAD_LEFT";
        if (keyCode==KeyEvent.KEYCODE_DPAD_RIGHT) str="DPAD_RIGHT";
        if (keyCode==KeyEvent.KEYCODE_BACK)       str="BACK";
        if (keyCode==KeyEvent.KEYCODE_MENU)       str="MENU";
        canvas.drawText("KeyCode>"+keyCode+" "+str,0,40,paint);
    }
    
    //キーダウンイベントの処理
    @Override 
    public boolean onKeyDown(int keyCode,KeyEvent event) {
        this.keyCode=keyCode;
        invalidate();
        return super.onKeyDown(keyCode,event);
    }

    //キーアップイベントの処理
    @Override 
    public boolean onKeyUp(int keyCode,KeyEvent event) {
        this.keyCode=-1;
        invalidate();
        return super.onKeyUp(keyCode,event);
    }
}



−戻る−