0

こんにちは、カメラから写真を撮り、画面に表示する必要があります。

しかし、私は Uri を null として取得しています。

ファイルの絶対パスを取得する必要があります。

私のコード:

mintent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
mintent.putExtra(MediaStore.EXTRA_OUTPUT,
             MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
startActivityForResult(mintent, 1);


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if ((data != null && !data.toString().equalsIgnoreCase("Intent {  }"))
            || requestCode == 1)
        switch (requestCode) {
        case 1:
            try {
                 Uri imageFileUri = data.getData();

                 Bitmap bitmap = (Bitmap) data.getExtras().get("data");
img2.setImageBitmap(bitmap);
}
}

助けてください..

4

2 に答える 2

1

あなたの問題はここにあります:

mintent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
mintent.putExtra(MediaStore.EXTRA_OUTPUT,
             MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());

ファイルを配置するURIを渡していません。代わりに、フォルダーの URI を渡しています。代わりに、ファイルの移動先の URI を渡す必要があります。数か月前に私が行ったプロジェクトの例を次に示します。

File lastSavedFile;

/**
 * IMPORTANT: this must be a directory readable by multiple apps (not private storage)
 * @return
 */
@SuppressLint("SimpleDateFormat")
private File getTempFile() {
    // Create an image file name
    String timeStamp =  new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = "barfile_" + timeStamp + ".jpg";

    return new File(Environment.getExternalStorageDirectory(), imageFileName);
}

/**
 * Called when we want to take a picture
 * 
 * @param position
 */
private void launchTakePictureIntent(int position)
{
    Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    lastSavedFile = getTempFile();
    i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(lastSavedFile));
    startActivityForResult(i, position);
}

/**
 * Returns from the camera intent, hopefully with a picture
 */
@Override
protected void onActivityResult(int position, int resultCode, Intent intent) {

    super.onActivityResult(position, resultCode, intent);

    if (resultCode == RESULT_OK) {
        Uri imageUri = Uri.fromFile(lastSavedFile);
        Bitmap fullBitmap;
        try {
            fullBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
        } catch (Exception e) {
            Log.e(TAG, e.toString(), e);
            return;
        }
        ...
于 2013-12-31T15:56:35.383 に答える