0

私は Intent を使用して Android カメラベースのアプリに取り組んでいます。写真をキャプチャした後、その写真が表示され、「保存」と「キャンセル」の 2 つのボタンが表示されます。私がやりたいことは、ユーザーがこれら 2 つのボタンのいずれかを選択するのを待つのではなく、この写真の処理を開始し、処理の結果に応じてさらにアクションを実行することです。

私はこれまでこのようにしてきました:

CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;

protected void startCameraActivity()
{
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );

    // the method below is my method for setting proper path for my image file
    fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image

    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name

    startActivityForResult( intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE );
}

このメソッドは、アプリを起動すると呼び出されます。だから私はカメラで私のアプリを起動します。それから私は写真を撮ります。そして、「保存」または「キャンセル」を選択できます。1 つを選択すると、このメソッドが呼び出されます。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            // Image captured and saved to fileUri specified in the Intent

            onPhotoTaken();    // processing...

        } else if (resultCode == RESULT_CANCELED) {
            // User cancelled the image capture
        } else {
            // Image capture failed, advise user
        }
    }
}

適切なresultCodeを受け取った後、その画像をファイルからロードして処理を開始します。

そして今、私の質問は次のとおりです: onActivityResult メソッドが呼び出される前にその画像を取得できますか? これらのボタンのいずれかをクリックすると呼び出されます。

(Google Google と同じようにやりたい - ユーザーが写真をキャプチャすると、その写真はすぐに処理されます)

4

1 に答える 1

0

この行に沿って、独自の写真撮影アクティビティを実装する必要があります(ページの最後にソース コードが含まれています)。

simple を使用する場合と比較して、まっすぐにセットアップするのに少し時間がかかりIntentますが、その後は、呼び出しアクティビティで使用できるようになる前であっても、カメラ画像を含むすべてのカメラ機能に直接アクセスできます。

于 2012-04-22T03:56:03.077 に答える