try {
? ? YuvImage image = new YuvImage(data, ImageFormat.NV21,
? ? ? ? ? ? WIDTH_COLLECT, HEIGHT_COLLECT, null);
? ? if (image != null) {
? ? ? ? ByteArrayOutputStream stream = new ByteArrayOutputStream();
? ? ? ? image.compressToJpeg(new Rect(0, 0, WIDTH_COLLECT,
? ? ? ? ? ? ? ? HEIGHT_COLLECT), 100, stream);
? ? ? ? Bitmap bm = BitmapFactory.decodeByteArray(
? ? ? ? ? ? ? ? stream.toByteArray(), 0, stream.size());
? ? ? ? stream.close();
? ? ? ? Canvas canvas = previewHolder.lockCanvas();
? ? ? ? canvas.drawBitmap(bm, 0, 0, null);
? ? ? ? previewHolder.unlockCanvasAndPost(canvas);
? ? }
} catch (Exception e) {
? ? // TODO: handle exception
}
previewHolder就是要显示预览数据的SurfaceView的SurfaceHolder,当然你要可以加上synchronized同步机制。
Demo就没有上传了,如果有什么问题可以直接留言讨论。