0

Intent で画像をキャプチャしたい

インテント cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE)

しかし、問題は、このコードでカメラが開始され、ユーザーがカメラボタンをクリックして画像をキャプチャする必要があることですが、私が望むのは、カメラが開始され、ユーザーとのさらなる対話なしで写真を撮ることです

INTENT を使用してこれを行いたい

4

3 に答える 3

1

それが私がやった方法です:CameraとSurfaceHolderのインスタンスを宣言します。

オブジェクトCallBackPictureを作成し、PictureTakenにメソッドを実装します(写真を撮りたいときに起動されるメソッド)

                 mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  
                 Camera.PictureCallback mCall = new Camera.PictureCallback()  
                 {     
                     @Override  
                     public void onPictureTaken(byte[] data, Camera camera)  
                    {
                                             //DO YOUR STUFF
                    }
                };  

               // Open the instance of camera
               mCamera = Camera.open();
               try {
               // Call the preview (not sure if it is working without this call
               mCamera.setPreviewDisplay(mSurfaceHolder);
               mCamera.startPreview();
               } catch (IOException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
               }

               if(mCamera == null) Log.i(TAG, "mCamera is null");
               // Will call the onPictureTaken implemented above
               // Look at the documentation : public final void takePicture 

               mCamera.takePicture(null, null, mCall);  
               mCamera.stopPreview();
               mCamera.release();

これを変更することで、やりたいことができるようになります。Manifest.XMLも変更することを忘れないでください。ただし、すでに変更していると思います。

編集:時々stoppreview()とrelease()に問題があります。だから、私がやったことは:

if (mCamera != null) {
    mCamera.release();
    mCamera = null;
}
mCamera = Camera.open();
etc...
于 2011-09-02T15:48:45.363 に答える
0

これはできません。次の 2 つのオプションしかありません。

  1. Intent を介してカメラ アプリを呼び出す。次に、ユーザーは通常の方法でカメラ アプリを使用します。つまり、準備ができたらボタンを押します。

  2. クラスを使用するCamera- これは、Intent を介してカメラ アプリを実行する場合と比較して、はるかに多くの作業です。しかし、それはあなたに完全なコントロールを与えます。

于 2011-09-02T13:08:29.040 に答える
0

カメラ インテントを呼び出すと、基本的にカメラ アプリ (またはこのインテントに登録された他のアプリ) を「実行」するため、基本的に、その動作を制御することはできません。Camera API を使用できます...こちらをご覧ください

于 2011-09-02T13:10:12.013 に答える