通过键盘控制图片移动

1.通过方向键public class GameView extends View {
int x=0, y=0;
……
public GameView(Context context) {
……
setFocusable(true);
}
@Override
protected void onDraw(Canvas canvas) {
……
canvas.drawBitmap(bmp, x, y, new Paint());
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch(keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
y -= 10;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
y += 10;
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
x -= 10;
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
x += 10;
break;
}
postInvalidate(); //通知系统重绘View
return super.onKeyDown(keyCode, event);
}
}
2.通过自定义图片移动图片
Rect rKeyUp = new Rect(56,290,86,320);
Rect rKeyDown = new Rect(56, 350, 86, 380);
Rect rKeyLeft = new Rect(26, 320, 56, 350);
Rect rKeyRight = new Rect(86, 320, 116, 350);
arg0.getAction() == MotionEvent.ACTION_DOWN) {
int ax = (int) arg0.getX();
int ay = (int) arg0.getY();
if (rKeyUp.contains(ax, ay)) {
y -= 10;
} else if (rKeyDown.contains(ax, ay)) {
y += 10;
} else if (rKeyLeft.contains(ax, ay)) {
x -= 10;
} else if (rKeyRight.contains(ax, ay)) {
x += 10;
}
postInvalidate(); //不要忘记刷新屏幕
}
return super.onTouchEvent(arg0);
}

你可能感兴趣的:(UP)