zoukankan      html  css  js  c++  java
  • View游戏框架--android开发

    主要通过重写

    @Override
        public void draw(Canvas canvas) {  }

    然后通过invalidate();或者postInvalidate();重绘画布,不断更新页面

    坦克图片材料

    部分源码:

    MyView

     1 package caicai.animation;
     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.Color;
     8 import android.graphics.Paint;
     9 import android.view.MotionEvent;
    10 import android.view.View;
    11 
    12 public class MyView extends View {
    13  private Paint paint;
    14     private int x = 0, y = 0;// 图片坐标
    15     private Bitmap bitmap;// 图片资源
    16     public MyView(Context context) {
    17         super(context);
    18         paint=new Paint();
    19         paint.setColor(Color.WHITE);
    20         bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.tanke);
    21         setFocusable(true);
    22         setFocusableInTouchMode(true);
    23     }
    24 
    25     @Override
    26     public void draw(Canvas canvas) {    
    27         canvas.drawBitmap(bitmap, x, y, paint);
    28         super.draw(canvas);
    29     }
    30     
    31     /**
    32 //     * 重写触屏事件函数
    33 //     */
    34     @Override
    35     public boolean onTouchEvent(MotionEvent event) {
    36         int x1 = (int)event.getX();
    37         int y1 = (int)event.getY();
    38         //玩家手指点击屏幕的动作
    39         if (event.getAction() == MotionEvent.ACTION_DOWN) {
    40             x = x1;
    41             y = y1;
    42             //玩家手指抬起离开屏幕的动作
    43         } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
    44             x = x1;
    45             y = y1;
    46             //玩家手指在屏幕上移动的动作
    47         } else if (event.getAction() == MotionEvent.ACTION_UP) {
    48             x = x1;
    49             y = y1;
    50         }
    51         //重绘画布
    52         invalidate();//或者用postInvalidate();刷新画布        
    53         return true;
    54     }
    55 }
    MyView

    MainActivity

     1 package caicai.animation;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.view.Window;
     6 import android.view.WindowManager;
     7 
     8 public class MainActivity extends Activity {
     9     /** Called when the activity is first created. */
    10     @Override
    11     public void onCreate(Bundle savedInstanceState) {
    12         super.onCreate(savedInstanceState);
    13         //设置全屏
    14         this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    15         requestWindowFeature(Window.FEATURE_NO_TITLE);
    16         //显示自定义的SurfaceView视图
    17         setContentView(new MyView(this));
    18 
    19     }
    20 }
    MainActivity

    支持下趣淘鼓浪屿(www.qtgly.com)

      

  • 相关阅读:
    数据更新
    MVC学习笔记
    const关键字同static readonly 的区别
    RSS
    C语言中取地址跟C++中的引用是一个意思吗?
    生产者消费者模式
    使用foreach的时候,不能对List进修改,怎么办?
    SQL查询
    Windows下的Java访问USB设备解决之道(翻译Java libusb / libusbwin32 wrapper)
    Java SE 6d新特性: 编译器 API
  • 原文地址:https://www.cnblogs.com/clarence/p/3284480.html
Copyright © 2011-2022 走看看