zoukankan      html  css  js  c++  java
  • Android的事件处理-android学习之旅(四十四)

    androd事件处理简单介绍

    这里写图片描写叙述
    这里写图片描写叙述

    控制飞机移动的简单实例

    package peng.liu.test;
    
    import android.app.ActionBar;
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.util.DisplayMetrics;
    import android.view.Display;
    import android.view.KeyEvent;
    import android.view.Menu;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    
    
    public class MainActivity extends Activity{
        int speed = 10;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
            final Plane plane = new Plane(this);
            setContentView(plane);
            plane.setBackgroundResource(Color.RED);
            WindowManager manager = getWindowManager();
            Display display = manager.getDefaultDisplay();
            DisplayMetrics metrics = new DisplayMetrics();
            display.getMetrics(metrics);
            plane.currentX = metrics.widthPixels/2;
            plane.currentY = metrics.heightPixels-40;
            plane.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View view, int i, KeyEvent keyEvent) {
                    switch(keyEvent.getKeyCode()){
                        case KeyEvent.KEYCODE_S:
                            plane.currentY+=speed;
                            break;
                        case KeyEvent.KEYCODE_W:
                            plane.currentY-=speed;
                            break;
                        case KeyEvent.KEYCODE_A:
                            plane.currentX-=speed;
                            break;
                        case KeyEvent.KEYCODE_D:
                            plane.currentX+=speed;
                            break;
                    }
                    plane.invalidate();
                    return true;
                }
            });
        }
    }
    
    package peng.liu.test;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.view.View;
    
    /**
     * Created by lplp on 2015/6/10.
     */
    public class Plane extends View {
        public float currentX,currentY;
        public Bitmap plane;
        public Plane(Context context){
            super(context);
            plane = BitmapFactory.decodeResource(context.getResources(),R.drawable.ic_launcher);
            setFocusable(true);
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            Paint p = new Paint();
            canvas.drawBitmap(plane,currentX,currentY,p);
        }
    }
    
  • 相关阅读:
    SpringMVC
    MyBatis 与 Spring 的完美整合方法
    持久层之 MyBatis: 第三篇 :缓存 And 高级查询
    持久层之 MyBatis: 第二篇 :动态SQL And多表查询
    C语言实现简单epoll服务器(二)
    C语言简单实现epoll服务器(一)
    shell编程题(十九)
    shell编程题(十七)
    shell编程题(十六)
    shell编程题(十三)
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7124746.html
Copyright © 2011-2022 走看看