0

私は非常に奇妙な問題に直面しています。デフォルトのカメラを開くという暗黙の意図があります。

カメラのアイコンが付いた画像ビューがあり、クリックするとデフォルトのカメラが開きます。

イメージビューをクリックすると、カメラが開くことがありますが、開かないことがあります。戻るボタンをクリックすると、デフォルトのカメラが開きます。私はこれに困惑しています。それは私のコードの問題ですか、それともデバイスのバグですか。

画像ビューはグリッド ビューです。キャプチャした画像のグリッド ビューを作成しているとき。最初の画像はカメラ アイコンになり、グリッドにはキャプチャされた画像が表示されます。

私は自分のコードを投稿しています:

マニフェストの許可:

<uses-feature android:name="android.hardware.camera" />

ジャバコード:

public void openCamera(String _path, String file_name) {
    File file = new File(_path);
    if (!file.exists()) {
        file.mkdirs();
    }

    mImageFile = new File(file + file_name);
    // create new Intent
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
    mActivity.startActivityForResult(intent, 1);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (resultCode == RESULT_OK) {
        //user is returning from capturing an image using the camera
        if(requestCode == CAMERA_CAPTURE){

            //sets the adapter

        }
    }
}
4

1 に答える 1

0

これを試して楽しんでください

File file = new File(Environment.getExternalStorageDirectory() + "/DCIM/", "image" + new Date().getTime() + ".png");
Uri imgUri = Uri.fromFile(file);
String imgPath = file.getAbsolutePath();

final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, setImageUri());
startActivityForResult(intent, CAPTURE_IMAGE);

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode != Activity.RESULT_CANCELED) {
            if (requestCode == CAPTURE_IMAGE) {
                imgUser.setImageBitmap(BitmapFactory.decodeFile(imgPath));
            } else {
                super.onActivityResult(requestCode, resultCode, data);
            }
        }

    }
于 2013-08-23T06:38:43.100 に答える