SurfaceView sv;
SurfaceHolder holder;
sv = (SurfaceView) findViewById ( R.id.sv1 );
holder = sv.getHolder();
Canvas cv = holder.lockCanvas();
cv.drawBitmap ( bitmap , left , top , new Paint() );
holder.unlockCanvasAndPost(cv);
這一段 code 會比使用 ImageView 觀看 Bitmap 來的更快, 因為我們利用的 Canvas 直接繪圖, 但是 ImageView 在到 android.graphics.drawable.BitmapDrawable 的 onDraw (Canvas canvas); 之前還需要作很多判斷, 所以速度上來說會比直接使用 Canvas 慢上許多.
另外 drawBitmap 其實是呼叫 JNI native_drawBitmap 來作實際上得繪圖動作.
public void drawBitmap(Bitmap bitmap, float left, float top, Paint paint)
{
native_drawBitmap(mNativeCanvas, bitmap.ni(), left, top, paint == null ? 0 : paint.mNativePaint);
}
沒有留言:
張貼留言