iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >双缓冲技术实现Android 画板应用
  • 956
分享到

双缓冲技术实现Android 画板应用

缓冲双缓冲画板Android 2022-06-06 08:06:25 956人浏览 泡泡鱼
摘要

什么是双缓冲技术?双缓冲技术就是当用户操作界面完成后,会有一个缓冲区保存用户操作的结果。 为什么要使用双缓冲技术?拿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画板开发之添加背景和保存画板内容为图片Android画板开发之撤销反撤销功能Android画板开发之基本画笔功能Android画板开发之橡皮擦功能Android自定义SurfaceView实现画板功能Android多媒体之画画板开发案例分享Android采用双缓冲技术实现画板android实现简单的画画板实例代码Android实现画画板案例


--结束END--

本文标题: 双缓冲技术实现Android 画板应用

本文链接: https://www.lsjlt.com/news/24612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作