3

私はこのようなインテントを使用しています:

Intent intent = new Intent(Intent.ACTION_PICK,
        android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);

そして、onActivityResult()私はこれを持っています:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode != Activity.RESULT_OK) {
        return; // user cancelled
    }

    Uri imageUri = data.getData();
    if (imageUri == null) {
        // (code to show error message goes here)
    return;
    }

    // Get image path from media store
    String[] filePathColumn = { android.provider.MediaStore.MediaColumns.DATA };
    Cursor cursor = this.getContentResolver().query(imageUri, filePathColumn,
            null, null, null);

    if (cursor == null || !cursor.moveToFirst()) {
        // (code to show error message goes here)
        return;
    }

    int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
    String imagePath = cursor.getString(columnIndex);
    cursor.close();

    if (imagePath == null) {
        // error happens here
    }
}

「投稿」「プロフィール写真」などの特定のアルバムから画像を選択すると(スクリーンショットを参照)、 で画像パスを取得できませんonActivityResult()。他のアルバムの画像は問題なく選択できます。

ゲラのスクリーンショット

追加しようとしましintent.putExtra("return-data", true)たが、にdata.getExtras()戻ります。nullonActivityResult()

here に同様の質問がありますが、誰も答えていません。

助けてください!

4

2 に答える 2

7

hops this will helps you ....

ACTIVITYRESULT_CHOOSEPICTURE is the int you use when calling startActivity(intent, requestCode);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
  if(requestCode == ACTIVITYRESULT_CHOOSEPICTURE) {
    BitmapFactory.Options options = new BitmapFactory.Options();
    final InputStream ist = ontext.getContentResolver().openInputStream(intent.getData());
    final Bitmap bitmap = BitmapFactory.decodeStream(ist, null, options);
    ist.close();
  }
}

if above code doesn't work than just refer this link... it will surly shows the way

http://dimitar.me/how-to-get-picasa-images-using-the-image-picker-on-android-devices-running-any-os-version/

于 2013-03-08T06:28:47.230 に答える
1

これを試して:

String selectedImagePath = imageUri.getEncodedPath();

ギャラリー画像ピッカーを使用して動作します

たぶんこれ:

bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
于 2013-03-08T00:36:17.047 に答える