zoukankan      html  css  js  c++  java
  • android 按键控制飞机


    演示一个很好的的效果,类似雷电,但功能上差很多,现在就实现了飞机的移动功能,不过,看上去还是挺漂亮的。

    首先新建一个布局main.xml文件

    View Code
     1 <?xml version="1.0" encoding="utf-8"?>
    2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3 android:id="@+id/root"
    4 android:orientation="vertical"
    5 android:layout_width="fill_parent"
    6 android:layout_height="fill_parent"
    7 >
    8 <ImageView
    9 android:layout_width="fill_parent"
    10 android:layout_height="fill_parent"
    11 android:src="@drawable/back"
    12 android:scaleType="fitXY"
    13 />
    14 </LinearLayout>

    第二步:建一个飞机类,这样就可以在主程序里new出飞机来了。

    View Code
     1 package cn.edu.zwu.tel;
    2
    3 import android.content.Context;
    4 import android.graphics.Bitmap;
    5 import android.graphics.BitmapFactory;
    6 import android.graphics.Canvas;
    7 import android.graphics.Paint;
    8 import android.view.View;
    9
    10 public class PlaneView extends View
    11 {
    12 public float currentX;
    13 public float currentY;
    14 Bitmap plane;
    15
    16 public PlaneView(Context context)
    17 {
    18 super(context);
    19 // TODO Auto-generated constructor stub
    20 //定义飞机图片
    21 plane = BitmapFactory.decodeResource(context.getResources()
    22 , R.drawable.plane);
    23 setFocusable(true);
    24 }
    25 @Override
    26 public void onDraw (Canvas canvas)
    27 {
    28 super.onDraw(canvas);
    29 //创建画笔
    30 Paint p = new Paint();
    31 //绘制飞机
    32 canvas.drawBitmap(plane , currentX , currentY , p);
    33 }
    34 }

    第三,修改LayoutKeyEvent01.java文件,可以控制飞机上下移动

    View Code
     1 package cn.edu.zwu.tel;
    2
    3 import android.app.Activity;
    4 import android.os.Bundle;
    5 import android.view.Display;
    6 import android.view.KeyEvent;
    7 import android.view.View;
    8 import android.view.Window;
    9 import android.view.WindowManager;
    10 import android.view.View.OnKeyListener;
    11
    12 public class LayoutKeyEvent01Activity extends Activity {
    13 /** Called when the activity is first created. */
    14 private int speed = 12;
    15
    16 @Override
    17 public void onCreate(Bundle savedInstanceState)
    18 {
    19 super.onCreate(savedInstanceState);
    20 // 去掉窗口标题
    21 requestWindowFeature(Window.FEATURE_NO_TITLE);
    22 // 全屏显示
    23 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    24 WindowManager.LayoutParams.FLAG_FULLSCREEN);
    25 // 创建PlaneView组件
    26 final PlaneView planeView = new PlaneView(this);
    27 setContentView(planeView);
    28 planeView.setBackgroundResource(R.drawable.back);
    29 // 获取窗口管理器
    30 WindowManager windowManager = getWindowManager();
    31 Display display = windowManager.getDefaultDisplay();
    32 // 获得屏幕宽和高
    33 int screenWidth = display.getWidth();
    34 int screenHeight = display.getHeight();
    35 // 设置飞机的初始位置
    36 planeView.currentX = screenWidth / 2;
    37 planeView.currentY = screenHeight - 40;
    38 // 为draw组件键盘事件绑定监听器
    39 planeView.setOnKeyListener(new OnKeyListener()
    40 {
    41 @Override
    42 public boolean onKey(View source, int keyCode, KeyEvent event)
    43 {
    44 // 获取由哪个键触发的事件
    45 switch (event.getKeyCode())
    46 {
    47 // 控制飞机下移
    48 case KeyEvent.KEYCODE_DPAD_DOWN:
    49 planeView.currentY += speed;
    50 break;
    51 // 控制飞机上移
    52 case KeyEvent.KEYCODE_DPAD_UP:
    53 planeView.currentY -= speed;
    54 break;
    55 // 控制飞机左移
    56 case KeyEvent.KEYCODE_DPAD_LEFT:
    57 planeView.currentX -= speed;
    58 break;
    59 // 控制飞机右移
    60 case KeyEvent.KEYCODE_DPAD_RIGHT:
    61 planeView.currentX += speed;
    62 break;
    63 }
    64 // 通知planeView组件重绘
    65 planeView.invalidate();
    66 return true;
    67 }
    68 });
    69 }
    70 }

    下面是效果图:



  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/shaoyangjiang/p/2371752.html
Copyright © 2011-2022 走看看