2

私はプログラミングに非常に慣れておらず、オンボード カメラ ハードウェアを使用してアプリを作成しようとしています。私の意図は写真を撮ることです。次に、[保存]をクリックすると、その写真が編集される新しいアクティビティに表示されます...カメラハードウェアを最適に使用する方法について数日間探しました...カメラstartActivity(new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE));を初期化するのが最も簡単だと言われました。 .. カメラを起動して写真を保存することさえできましたが、私の問題は次のとおりです。カメラで保存を押すと、保存された写真を編集可能な新しいアクティビティに移動する代わりに、カメラのアクティビティがリロードされます...私は完全な初心者のように聞こえるかもしれませんが、誰かがこれを理解し、できるなら助けていただければ幸いです。

4

1 に答える 1

4

Adam,

In my app I use the following code to Launch the camera:

public void imageFromCamera() {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    mImageFile = new File(Environment.getExternalStorageDirectory()+File.separator+"MyApp",  
            "PIC"+System.currentTimeMillis()+".jpg");
    mSelectedImagePath = mImageFile.getAbsolutePath();
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
    startActivityForResult(intent, TAKE_PICTURE);
}

This will save the image to the path mSelectedImagePath which is /sdcard/MyApp/<systemtime>.jpg.

Then you capture the return of the IMAGE_CAPTURE intent in onActivityResult and launch your activity to edit the image from there!

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        switch(requestCode) {
        case TAKE_PICTURE:
                    //Launch ImageEdit Activity
            Intent i = new Intent(this, ImageEdit.class);
                    i.putString("imgPath", "mSelectedImagePath");
                    startActivity(i);
            break;
        }
    }
}

Hope this helps!

于 2011-03-01T18:38:20.063 に答える