亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我按下方向鍵怎么卻沒有反應?

為什么我按下方向鍵怎么卻沒有反應?

三國紛爭 2023-01-12 19:15:22
下面這個android程序我本來想按下按鈕對應的方向鍵圖片就會朝相對的方向移動。public class MySurfaceView extends SurfaceView implements Callback, Runnable {private SurfaceHolder sfh;private Paint paint;private Canvas canvas;private Thread th;private boolean flag;private Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.android);private int left=100,top=100;public MySurfaceView(Context context) {super(context);// TODO Auto-generated constructor stubsfh = this.getHolder();sfh.addCallback(this);paint = new Paint();paint.setColor(Color.RED);setFocusable(true);}public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}public void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubflag = true;th = new Thread(this);th.start();}public void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}private void myDraw() {// TODO Auto-generated method stubtry{canvas = sfh.lockCanvas();if(canvas != null){canvas.drawRGB(0, 0, 0);canvas.drawBitmap(bmp, left, top, paint);}}catch (Exception e){}finally{if(canvas != null)sfh.unlockCanvasAndPost(canvas);}}public boolean onkeyDown(int keyCode, KeyEvent event){if(keyCode == KeyEvent.KEYCODE_DPAD_UP){top-=1;}else if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN){top+=1;}else if(keyCode == KeyEvent.KEYCODE_DPAD_LEFT){left-=1;}else if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT){left+=1;}return super.onKeyDown(keyCode, event);}public boolean onkeyUp(int keyCode, KeyEvent event){return super.onKeyUp(keyCode, event);}public void logic(){}public void run() {// TODO Auto-generated method stubwhile(flag){long start = System.currentTimeMillis();myDraw();logic();long end = System.currentTimeMillis();try{if(end - start < 20){Thread.sleep(20 - (end - start));}}catch(InterruptedException e){e.printStackTrace();}}}}
查看完整描述

1 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

你的activity里面也有onkeydown,估計沒有傳進來,view的觸摸傳遞模式是從從上面一層開始傳遞,要看xml里你的surfaceview的布局位置,如果view之間key值傳遞有onkeydown返回值設置為true,就不會再往下傳了,從而surfaceview可能就沒有接受到。

查看完整回答
反對 回復 2023-01-15
  • 1 回答
  • 0 關注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號