android開発、タッチイベントが呼ばれない
Posted: 2013年4月24日(水) 17:44
開発環境
windows7 64bit
Eclipse
Android Developer Tools
Build: v21.1.0-569685
androidでタッチイベントを使いたいのですがタッチしても反応しません
ttp://dixq.net/Android/
↑アンロドイドの館の(s2.03、FPSを表示する) のプロジェクトをDLして使わせてもらっています。
自分でViewを継承したクラス「TouchEvent」を作ったのですが、実機で実行してタッチしても
onTouchEventが通っていないようです
アクティビィー継承したクラスとView継承したクラスだけでテストしてみたらタッチイベントが確認できたので
基本的な使い方は間違っていないと思うのですが・・・
Player.java
TouchEvent.java
windows7 64bit
Eclipse
Android Developer Tools
Build: v21.1.0-569685
androidでタッチイベントを使いたいのですがタッチしても反応しません
ttp://dixq.net/Android/
↑アンロドイドの館の(s2.03、FPSを表示する) のプロジェクトをDLして使わせてもらっています。
自分でViewを継承したクラス「TouchEvent」を作ったのですが、実機で実行してタッチしても
onTouchEventが通っていないようです
アクティビィー継承したクラスとView継承したクラスだけでテストしてみたらタッチイベントが確認できたので
基本的な使い方は間違っていないと思うのですが・・・
Player.java
public class Player extends Task {
private TouchEvent _touchEvent;
private Bitmap _image;
private Paint _paint = new Paint();
private float _angle;//キャラの角度
private float _x, _y;//キャラの座標
private float _speed;//キャラの移動量
private int _maxHp, _nowHp;//HP
private int _atack;//攻撃力
public Player(Context context){
Resources r=context.getResources();
_image = BitmapFactory.decodeResource(r,R.drawable.player);
_touchEvent = new TouchEvent(context);
statusInit();
}
@Override
public boolean update(){
_x = _touchEvent.getTouchX();
_y = _touchEvent.getTouchY();
return true;
}
@Override
public void draw(Canvas c){
c.drawBitmap(_image, _x, _y, _paint);
}
private void statusInit(){
_angle = 0.0f;//キャラの角度
_x = 0.0f;
_y = 0.0f;//キャラの座標
_speed = 2.0f;//キャラの移動量
_maxHp = 100;
_nowHp = 100;//HP
_atack = 10;//攻撃力
}
}
public class TouchEvent extends View{
private float _x=0.0f, _y=0.0f;
public TouchEvent(Context context) {
super(context);
setFocusable(true);
setClickable(true);
}
@Override
public boolean onTouchEvent(MotionEvent event){
int action = event.getAction();
switch (action&MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
_x = 50.0f;
break;
case MotionEvent.ACTION_POINTER_DOWN:
_x = 50.0f;
break;
case MotionEvent.ACTION_UP:
_x = 50.0f;
break;
case MotionEvent.ACTION_POINTER_UP:
_x = 50.0f;
break;
case MotionEvent.ACTION_MOVE:
_x = 50.0f;
break;
}
_x = 50.0f;
return true;
}
public float getTouchX(){
return _x;
}
public float getTouchY(){
return _y;
}
}