Android 响应键盘移动图标
Android 响应键盘移动图标
view plaincopy to clipboardprint?- package rw.SurFace;
- import Android.app.Activity;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.os.Bundle;
- import android.util.DisplayMetrics;
- import android.util.Log;
- import android.view.KeyEvent;
- import android.view.SurfaceView;
- public class Surfaecview01Activity extends Activity {
- /** Called when the activity is first created. */
- DisplayMetrics sMetrics;
- Thread maintThread;
- MysurfaceView view;
- boolean up,down,right,left;
- class MysurfaceView extends SurfaceView implements Runnable{
- Bitmap bitmap;
- Paint paint=new Paint();
- long time;
- int Coord_x,Coord_y;
- int x,y;
- public MysurfaceView(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- setFocusable(true);//可以聚焦
- bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.a);
- paint.setColor(Color.BLUE);
- paint.setTextSize(20);
- x=bitmap.getWidth();
- y=bitmap.getHeight()/2;
- maintThread=new Thread(this);
- maintThread.start();
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- while (true) {
- DoDraw();
- }
- }
- void DoDraw()
- {
- Canvas canvas=getHolder().lockCanvas();
- if (canvas!=null) {
- canvas.drawColor(Color.WHITE);
- if (up) Coord_y--;
- if(down) Coord_y++;
- if(left) Coord_x--;
- if (right) Coord_x++;
- canvas.drawBitmap(bitmap, Coord_x*10, Coord_y*10, null);
- long now=System.currentTimeMillis();
- canvas.drawText(""+1000/(now-time)+"fps", x, y, paint);
- time=now;
- getHolder().unlockCanvasAndPost(canvas);
- }
- }
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- sMetrics=new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(sMetrics);
- /*
- * 获取屏幕大小
- */
- int Met_X=sMetrics.widthPixels;
- int Met_Y=sMetrics.heightPixels;
- Log.i("X--------->", Met_X+"");
- Log.i("Y--------->", Met_Y+"");
- setContentView(new MysurfaceView(this));
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- switch (keyCode) {
- case KeyEvent.KEYCODE_DPAD_UP:
- up=true;
- break;
- case KeyEvent.KEYCODE_DPAD_DOWN:
- down=true;
- break;
- case KeyEvent.KEYCODE_DPAD_LEFT:
- left=true;
- break;
- case KeyEvent.KEYCODE_DPAD_RIGHT:
- right=true;
- break;
- default:
- break;
- }
- return super.onKeyDown(keyCode, event);
- }
- @Override
- public boolean onKeyUp(int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- switch (keyCode) {
- case KeyEvent.KEYCODE_DPAD_UP:
- up=false;
- break;
- case KeyEvent.KEYCODE_DPAD_DOWN:
- down=false;
- break;
- case KeyEvent.KEYCODE_DPAD_LEFT:
- left=false;
- break;
- case KeyEvent.KEYCODE_DPAD_RIGHT:
- right=false;
- break;
- default:
- break;
- }
- return super.onKeyUp(keyCode, event);
- }
- /* (non-Javadoc)
- * @see android.app.Activity#onDestroy()
- */
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- Thread.interrupted();
- super.onDestroy();
- }
- }
评论暂时关闭