最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

雙緩沖技術實現(xiàn)Android 畫板應用

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

什么是雙緩沖技術?雙緩沖技術就是當用戶操作界面完成后,會有一個緩沖區(qū)保存用戶操作的結果。

為什么要使用雙緩沖技術?拿Android 游戲開發(fā)來說,界面貞每次都是全部重畫的,也就說畫了新的,舊的就沒了,所以需要使用雙緩沖技術保存之前的內容。

如何實現(xiàn)雙緩沖?使用一個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雙緩沖技術實現(xiàn)畫板應用實例,有需要的朋友可以參考下。

相關文章

  • Android實現(xiàn)垂直跑馬燈效果

    Android實現(xiàn)垂直跑馬燈效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)垂直跑馬燈效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 初學Android之網(wǎng)絡封裝實例

    初學Android之網(wǎng)絡封裝實例

    大家好,本篇文章主要講的是初學Android之網(wǎng)絡封裝實例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 一文詳解Android中Okio輸入輸出流

    一文詳解Android中Okio輸入輸出流

    在 OkHttp 的源碼中,我們經(jīng)常能看到 Okio 的身影,所以這篇文章文章我們將對Okio進行一個詳細的講解,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-07-07
  • Android開發(fā)組件flutter的20個常用技巧示例總結

    Android開發(fā)組件flutter的20個常用技巧示例總結

    這篇文章主要為大家介紹了Android開發(fā)組件flutter的20個常用技巧示例總結,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • android post請求接口demo

    android post請求接口demo

    這篇文章主要為大家詳細介紹了android post請求接口測試代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android開發(fā)之MediaPlayer多媒體(音頻,視頻)播放工具類

    Android開發(fā)之MediaPlayer多媒體(音頻,視頻)播放工具類

    這篇文章主要介紹了Android開發(fā)之MediaPlayer多媒體(音頻,視頻)播放工具類,涉及Android針對音頻文件的讀取、播放、暫停、繼續(xù)等操作實現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • Android?Bugreport實現(xiàn)原理深入分析

    Android?Bugreport實現(xiàn)原理深入分析

    這篇文章主要介紹了Android?Bugreport實現(xiàn)原理,Bugreport主要用于分析手機的狀態(tài),在應用開發(fā)中,程序的調試分析是日常生產(chǎn)中進程會進行的工作,Bugreport就是很常用的工具,需要的朋友可以參考下
    2024-05-05
  • Android?Studio中使用SQLite的操作方法

    Android?Studio中使用SQLite的操作方法

    這篇文章主要介紹了Android?Studio中使用SQLite的操作方法的相關資料,需要的朋友可以參考下
    2023-06-06
  • Android編程簡單設置ListView分割線的方法

    Android編程簡單設置ListView分割線的方法

    這篇文章主要介紹了Android編程簡單設置ListView分割線的方法,涉及Android布局簡單操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • Android中的Launch Mode詳情

    Android中的Launch Mode詳情

    這篇文章主要介紹了Android中的Launch Mode詳情,文章圍繞主題的相關資料展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06

最新評論

苍山县| 南澳县| 绍兴县| 清新县| 崇阳县| 碌曲县| 巴林左旗| 扶风县| 建宁县| 都兰县| 平乐县| 淮南市| 奎屯市| 铅山县| 墨玉县| 名山县| 密云县| 平塘县| 武穴市| 垣曲县| 伊川县| 东丽区| 梅州市| 安平县| 公主岭市| 汨罗市| 凤山市| 沾化县| 清水河县| 闸北区| 莱芜市| 景泰县| 咸丰县| 德庆县| 乐安县| 理塘县| 滁州市| 肇州县| 烟台市| 将乐县| 芜湖市|