双缓冲技术
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
package com.gavin;
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.View;
import android.view.WindowManager;
/**
?* 測(cè)試雙緩沖
?*
?* 先通過(guò)setBitmap()將繪制的所有圖片繪制到一個(gè)bitmap上,
?* 然后再調(diào)用drawbitmap()繪制這個(gè)bitmap顯示到屏幕上
?*???????? 2013-4-6
?*/
public class DoubleBffer extends View
{
?? ?private Bitmap mBitmapQQ;
?? ?private Paint mPaint;
?? ?/** 創(chuàng)建一個(gè)緩沖區(qū) */
?? ?private Bitmap mscBitmap;
?? ?private Canvas mCanvas;
?? ?public DoubleBffer(Context context)
?? ?{
?? ??? ?super(context);? ????
?? ??? ?
?? ??? ?mBitmapQQ = ((BitmapDrawable) getResources().getDrawable(R.drawable.qq)).getBitmap();
?? ????
?? ?
?? ??? ?WindowManager manager=(WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE);
?? ??? ?int width=manager.getDefaultDisplay().getWidth();
?? ??? ?int height=manager.getDefaultDisplay().getHeight();
?? ??? ?/** 創(chuàng)建屏幕大小的緩沖區(qū) */
?? ??? ?mscBitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
?? ??? ?mCanvas = new Canvas();
?? ??? ?/** 設(shè)置將內(nèi)容繪制在mscBitmap上 */
?? ??? ?mCanvas.setBitmap(mscBitmap);
?? ??? ?mPaint = new Paint();
?? ??? ?/** 將mBitmapQQ繪制到mscBitmap上 */
?? ??? ?mCanvas.drawBitmap(mBitmapQQ, 0, 0, mPaint);
?? ??? ?//第二張圖片繪制
?? ??? ?int secbitmapStartY=mBitmapQQ.getHeight();
?
?? ?}
?? ?public void onDraw(Canvas canvas)
?? ?{
?? ??? ?super.onDraw(canvas);
?? ??? ?/**將mscBitmap顯示到屏幕上*/
?? ??? ?canvas.drawBitmap(mscBitmap, 0, 0, mPaint);
?? ?}
}
轉(zhuǎn)載于:https://my.oschina.net/gavinjin/blog/126646
總結(jié)
- 上一篇: 【bayes】贝叶斯likelihood
- 下一篇: 《PowerShell 3.0 Adva