双缓冲技术
2019獨角獸企業重金招聘Python工程師標準>>>
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;
/**
?* 測試雙緩沖
?*
?* 先通過setBitmap()將繪制的所有圖片繪制到一個bitmap上,
?* 然后再調用drawbitmap()繪制這個bitmap顯示到屏幕上
?*???????? 2013-4-6
?*/
public class DoubleBffer extends View
{
?? ?private Bitmap mBitmapQQ;
?? ?private Paint mPaint;
?? ?/** 創建一個緩沖區 */
?? ?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();
?? ??? ?/** 創建屏幕大小的緩沖區 */
?? ??? ?mscBitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
?? ??? ?mCanvas = new Canvas();
?? ??? ?/** 設置將內容繪制在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);
?? ?}
}
轉載于:https://my.oschina.net/gavinjin/blog/126646
總結
- 上一篇: 【bayes】贝叶斯likelihood
- 下一篇: 《PowerShell 3.0 Adva