zoukankan      html  css  js  c++  java
  • 双缓冲

    package com.example.examples_05_12;

     

    import android.content.Context;

    import android.graphics.Bitmap;

    import android.graphics.Bitmap.Config;

    import android.graphics.Canvas;

    import android.graphics.Paint;

    import android.graphics.drawable.BitmapDrawable;

    import android.view.MotionEvent;

    import android.view.View;

    import android.widget.Toast;

     

    public class GameView extends View implements Runnable {

     

    //创建Bitmap

    Bitmap mBitmap;

    Paint paint=null;

    //创建一个双缓冲区

    Bitmap mSCBitmap=null;

    //创建Canvas

    Canvas mCanvas=null;

    public GameView(Context context) {

    super(context);

    // TODO Auto-generated constructor stub

    //装载资源

    mBitmap=((BitmapDrawable)getResources().getDrawable(R.drawable.qq)).getBitmap();

     

    //创建屏幕大小的缓冲区

    mSCBitmap=Bitmap.createBitmap(320, 480, Config.ARGB_8888);

     

    //创建Canvas

    mCanvas=new Canvas();

     

    //设置将内容绘制在mSCBitmap

    mCanvas.setBitmap(mSCBitmap);

     

    paint=new Paint();

     

    //mBitmap绘制到mSCBitmap

    mCanvas.drawBitmap(mBitmap, 0, 0, paint);

     

    new Thread(this).start();

    }

     

    public void run() {

    // TODO Auto-generated method stub

    while (!Thread.currentThread().isInterrupted()) {

    try {

    Thread.sleep(100);

    } catch (Exception e) {

    // TODO: handle exception

    Thread.currentThread().interrupt();

    }

    postInvalidate();

    }

     

    }

    public void onDraw(Canvas canvas) {

    super.onDraw(canvas);

    //绘制到屏幕上

    canvas.drawBitmap(mSCBitmap, 0, 0, paint);

    }

     

     

    }

     

    package com.example.examples_05_12;

     

    import android.os.Bundle;

    import android.app.Activity;

    import android.view.Menu;

    import android.view.MotionEvent;

    import android.widget.Toast;

     

    public class MainActivity extends Activity {

     

        @Override

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(new GameView(MainActivity.this));

        }

     

    public boolean onTouchEvent(MotionEvent event) {

     

    //获得xy坐标,并弹出消息框

    Toast.makeText(MainActivity.this, event.getRawX()+"+"+event.getRawY(), Toast.LENGTH_SHORT).show();

    return true;

    }

    }

  • 相关阅读:
    你所不知道的mfc…mfc项目索引 &mfc调优指南 &mfc vc添加添加子功能指南
    Cu 大彻大悟内存管理 mm (update 0410)
    [转]Linux iostat监测IO状态
    linux virtual memory layout by moniskiller upload [读书笔记]
    河畔找到的 面经笔经
    【转】Linux本地磁盘(硬盘)介绍
    读写UTF8、Unicode文件
    codesmith执行时提示“调用的目标发生了异常”的处理过程经验。
    DB2表信息以及字段信息的表
    iBatis.NET获取resultMap相关数据
  • 原文地址:https://www.cnblogs.com/danmao/p/3808683.html
Copyright © 2011-2022 走看看