資源描述:
《android手機(jī)拍照功能的實(shí)現(xiàn)及原理》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、android手機(jī)拍照功能的實(shí)現(xiàn)及原理[html]?viewplaincopy1.-------------------------------------------------------------------??2.在main.xml布局文件添加用于顯示取景畫面的SurfaceView?控件:??3.
2、?/>??4.SurfaceView?surfaceView?=?(SurfaceView)this.findViewById(R.id.surfaceView);??5.surfaceView.getHolder().setFixedSize(176,?144);?//設(shè)置分辨率??6./*下面設(shè)置Surface不維護(hù)自己的緩沖區(qū),而是等待屏幕的渲染引擎將內(nèi)容推送到用戶面前*/??7.surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFF
3、ERS);??8.Camera?camera?=?Camera.open();??9.WindowManager?wm?=?(WindowManager)?getSystemService(Context.WINDOW_SERVICE);??10.Display?display?=?wm.getDefaultDisplay();??11.Camera.Parameters?parameters?=?camera.getParameters();??12.parameters.setPreviewSize(display.
4、getWidth(),?display.getHeight());//設(shè)置預(yù)覽照片的大小??13.parameters.setPreviewFrameRate(3);//每秒3幀??14.parameters.setPictureFormat(PixelFormat.JPEG);//設(shè)置照片的輸出格式??15.parameters.set("jpeg-quality",?85);//照片質(zhì)量??16.parameters.setPictureSize(display.getWidth(),?display.getHeig
5、ht());//設(shè)置照片的大小??17.camera.setParameters(parameters);??18.camera.setPreviewDisplay(surfaceView.getHolder());//通過SurfaceView顯示取景畫面??19.camera.startPreview();//開始預(yù)覽??20.camera.autoFocus(null);//自動對焦??21.camera.takePicture(null,?null,?null,?jpegCallback);//拍照片??22.c
6、amera.stopPreview();//停止預(yù)覽??23.camera.release();//釋放攝像頭??24.-------------------------------------------------------------------------??25.??packagecn.itcast.picture;importjava.io.File;importjava.io.FileOu
7、tputStream;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.PixelFormat;importandroid.graphics.Bitmap.CompressFormat;importandroid.hardware.Camera;importandroid.os.B
8、undle;importandroid.os.Environment;importandroid.util.Log;importandroid.view.Display;importandroid.view.KeyEvent;importandroid.view.SurfaceHolder;importandroid