通过键盘控制图片移动

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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值