手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >使用双缓冲技术实现Android画板应用
使用双缓冲技术实现Android画板应用
摘要:双缓冲技术就是当用户操作界面完成后,会有一个缓冲区保存用户操作的结果。为什么要使用双缓冲技术?拿Android游戏开发来说,界面贞每次都是全...

双缓冲技术就是当用户操作界面完成后,会有一个缓冲区保存用户操作的结果。

为什么要使用双缓冲技术?拿Android 游戏开发来说,界面贞每次都是全部重画的,也就说画了新的,旧的就没了,所以需要使用双缓冲技术保存之前的内容。

如何实现双缓冲?使用一个Bitmap对象保留之前的画布即可。

package com.example.phonegaptest;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Bitmap.Config;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.util.AttributeSet;

import android.view.MotionEvent;

import android.view.View;

public class DrawView extends View {

float preX;

float preY;

private Path path;

public Paint paint = null;

final int VIEW_WIDTH = 320;

final int VIEW_HEIGHT = 480;

Bitmap cacheBitmap = null;

Canvas cacheCanvas = null;

public DrawView(Context context, AttributeSet set) {

super(context, set);

cacheBitmap = Bitmap.createBitmap(VIEW_WIDTH, VIEW_HEIGHT,

Config.ARGB_8888);

cacheCanvas = new Canvas();

path = new Path();

cacheCanvas.setBitmap(cacheBitmap);

paint = new Paint(Paint.DITHER_FLAG);

paint.setColor(Color.RED);

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(1);

paint.setAntiAlias(true);

paint.setDither(true);

}

@Override

public boolean onTouchEvent(MotionEvent event) {

float x = event.getX();

float y = event.getY();

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

path.moveTo(x, y);

preX = x;

preY = y;

break;

case MotionEvent.ACTION_MOVE:

path.quadTo(preX, preY, x, y);

preX = x;

preY = y;

break;

case MotionEvent.ACTION_UP:

cacheCanvas.drawPath(path, paint);

path.reset();

break;

}

invalidate();

return true;

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

Paint bmpPaint = new Paint();

canvas.drawBitmap(cacheBitmap, 0, 0, bmpPaint);

canvas.drawPath(path, paint);

}

}

【使用双缓冲技术实现Android画板应用】相关文章:

解析Android开发优化之:软引用与弱引用的应用

Android笔记之:CM9源码下载与编译的应用

Android 四种动画效果的调用实现代码

Android用户界面开发之:TextView的使用实例

Android adb的常用命令

Android 动画之ScaleAnimation应用详解

浅谈Android Content Provider的使用

Android的webview支持HTML5的离线应用功能详细配置

编译并运行Android4.0模拟器

Android之PreferenceActivity应用详解

精品推荐
分类导航