怎么实现调用安卓手机的拍照功能?

解决方案 »

  1.   

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
      File path = new File(mstrPath);
      if(!path.exists())
      path.mkdirs();
      mstrFileName = Global.GetTime2() + ".jpg";
      mstrFilePath = mstrPath + "/" + mstrFileName;
      Log.e(Global.TAG, mstrFilePath);
      File file = new File(mstrFilePath);
      Uri uri = Uri.fromFile(file);
      intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
      startActivityForResult(intent, 1);
      

  2.   

    使用 SurfaceView 控件来显示摄像头捕捉到的画面       <SurfaceView android:layout_width="fill_parent" android:layout_height="240dip" android:id="@+id/surfaceView" /> /* 获取 SurfaceView 控件 */       SurfaceView surfaceView = (SurfaceView)this.findViewById(R.id.surfaceView);       /* 设置分辨率 */       surfaceView.getHolder().setFixedSize(176, 144);       /* 下面设置Surface 不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前*/       surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);       /* 打开摄像头,注意这里是 android.hardware.Camera */       Camera camera = Camera.open();             /* 为 Camera 设置摄像参数 */       Camera.Parameters parameters = camera.getParameters();             /* 设置预览照片的大小,此处设置为全屏 */       WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); // 获取当前屏幕管理器对象
       
     Display display = wm.getDefaultDisplay();                                      // 获取屏幕信息的描述类       parameters.setPreviewSize(display.getWidth(), display.getHeight());          // 设置             /* 每秒从摄像头捕获5 帧画面, */       parameters.setPreviewFrameRate(5);       /* 设置照片的输出格式:jpg */       parameters.setPictureFormat(PixelFormat.JPEG);       /* 照片质量 */       parameters.set("jpeg-quality", 85);       /* 设置照片的大小:此处照片大小等于屏幕大小 */       parameters.setPictureSize(display.getWidth(), display.getHeight());
    /* 将参数对象赋予到 camera 对象上 */       camera.setParameters(parameters);             /* 设置用 SurfaceView 作为承载镜头取景画面的显示 */       camera.setPreviewDisplay(surfaceView.getHolder());       /* 开始预览 */       camera.startPreview();       /* 自动对焦 */       camera.autoFocus(null);       /* 拍照片 */       camera.takePicture(null, null, null, jpegCallback);       /* 停止预览 */       camera.stopPreview();       /* 释放摄像头 */       camera.release(); 
    添加使用摄像头的权限       <uses-permission android:name="android.permission.CAMERA"/>