亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

雙緩沖技術(shù)實(shí)現(xiàn)Android 畫(huà)板應(yīng)用

 更新時(shí)間:2016年07月14日 15:48:05   投稿:lqh  
這篇文章主要介紹了Android 采用雙緩存技術(shù)實(shí)現(xiàn)畫(huà)板應(yīng)用的相關(guān)資料,并附有代碼實(shí)例,有需要的小伙伴可以參考下

什么是雙緩沖技術(shù)?雙緩沖技術(shù)就是當(dāng)用戶操作界面完成后,會(huì)有一個(gè)緩沖區(qū)保存用戶操作的結(jié)果。

為什么要使用雙緩沖技術(shù)?拿Android 游戲開(kāi)發(fā)來(lái)說(shuō),界面貞每次都是全部重畫(huà)的,也就說(shuō)畫(huà)了新的,舊的就沒(méi)了,所以需要使用雙緩沖技術(shù)保存之前的內(nèi)容。

如何實(shí)現(xiàn)雙緩沖?使用一個(gè)Bitmap對(duì)象保留之前的畫(huà)布即可。

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); 
 } 
 
} 

以上就是對(duì)Android雙緩沖技術(shù)實(shí)現(xiàn)畫(huà)板應(yīng)用實(shí)例,有需要的朋友可以參考下。

相關(guān)文章

最新評(píng)論