Android(安卓)Camera照相机
16lz
2021-12-21
java代码:
[java] view plain copy
转自:http://blog.csdn.net/tzqncwu/article/details/6682820
[java] view plain copy
- packagecom.Aina.Android;
- importjava.io.BufferedOutputStream;
- importjava.io.File;
- importjava.io.FileNotFoundException;
- importjava.io.FileOutputStream;
- importjava.io.IOException;
- importandroid.content.Context;
- importandroid.graphics.Bitmap;
- importandroid.graphics.BitmapFactory;
- importandroid.graphics.Canvas;
- importandroid.graphics.PixelFormat;
- importandroid.hardware.Camera;
- importandroid.util.Log;
- importandroid.view.KeyEvent;
- importandroid.view.SurfaceHolder;
- importandroid.view.SurfaceView;
- /**
- *com.Aina.AndroidPro_Camera
- *
- *@authorAina.huangE-mail:674023920@qq.com
- *@version创建时间:2010Jul7,20102:50:15PM类说明
- */
- publicclassPreViewextendsSurfaceViewimplementsSurfaceHolder.Callback{
- privateSurfaceHolderholder=null;
- privateCameramCamera=null;
- privateBitmapmBitmap=null;
- publicPreView(Contextcontext){
- super(context);
- Log.i("TAG","PreView()");
- //TODOAuto-generatedconstructorstub
- holder=this.getHolder();
- holder.addCallback(this);
- holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
- }
- publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,
- intheight){
- Log.i("TAG","surfaceChanged");
- //TODOAuto-generatedmethodstub
- Camera.Parametersparameters=mCamera.getParameters();
- parameters.setPictureFormat(PixelFormat.JPEG);//设置图片格式
- parameters.setPreviewSize(320,480);//设置尺寸
- //parameters.setPictureSize(320,480);//设置分辨率
- mCamera.setParameters(parameters);
- mCamera.startPreview();//开始预览
- }
- publicvoidsurfaceCreated(SurfaceHolderholder){
- Log.i("TAG","surfaceCreated");
- //TODOAuto-generatedmethodstub
- mCamera=Camera.open();//启动服务
- try{
- mCamera.setPreviewDisplay(holder);//设置预览
- }catch(IOExceptione){
- mCamera.release();//释放
- mCamera=null;
- }
- }
- publicvoidsurfaceDestroyed(SurfaceHolderholder){
- Log.i("TAG","surfaceDestroyed");
- //TODOAuto-generatedmethodstub
- mCamera.stopPreview();//停止预览
- mCamera=null;
- }
- publicbooleanonKeyDown(intkeyCode,KeyEventevent){
- if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){
- if(mCamera!=null){
- mCamera.takePicture(null,null,pic);
- }
- }
- returnsuper.onKeyDown(keyCode,event);
- }
- //拍照后输出图片
- publicCamera.PictureCallbackpic=newCamera.PictureCallback(){
- publicvoidonPictureTaken(byte[]data,Cameracamera){
- //TODOAuto-generatedmethodstub
- mBitmap=BitmapFactory.decodeByteArray(data,0,data.length);
- Filef=newFile(android.os.Environment.getExternalStorageDirectory()+"/camera1.jpg");
- try{
- BufferedOutputStreamos=newBufferedOutputStream(newFileOutputStream(f));
- mBitmap.compress(Bitmap.CompressFormat.JPEG,80,os);
- os.flush();
- os.close();
- Canvascanvas=holder.lockCanvas();
- canvas.drawBitmap(mBitmap,0,0,null);
- holder.unlockCanvasAndPost(canvas);
- }catch(FileNotFoundExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- };
- }
[java] view plain copy
- packagecom.Aina.Android;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.view.KeyEvent;
- importandroid.view.Window;
- publicclassTestextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- privatePreViewpv=null;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- this.requestWindowFeature(Window.FEATURE_NO_TITLE);
- pv=newPreView(this);
- setContentView(pv);
- }
- @Override
- publicbooleanonKeyDown(intkeyCode,KeyEventevent){
- //TODOAuto-generatedmethodstub
- returnpv.onKeyDown(keyCode,event);
- }
- }
[java] view plain copy
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.Aina.Android"
- android:versionCode="1"
- android:versionName="1.0">
- <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
- <activityandroid:name=".Test"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- <uses-permissionandroid:name="android.permission.CAMERA"/>
- <uses-featureandroid:name="android.hardware.camera"/>
- <uses-featureandroid:name="android.hardware.camera.autofocus"/>
- </manifest>
转自:http://blog.csdn.net/tzqncwu/article/details/6682820
更多相关文章
- Android(安卓)三角标签(自定义Textview控件)
- Android特色开发--情景模式
- Android(安卓)Dialog设置动画
- android保存预览图片
- Android通过画线实现button效果
- android实现发送短信demo
- Android(安卓)设置dialog在底部显示
- android的动画实例
- Android(安卓)崩溃日志的获取方式