果たして需要があるかは分かりませんが、私はあったので備忘録としてまとめ。
Anrdoidアプリで、Uriから画像のファイルパスを取得する方法です。
参考にさせていただいたサイトは確かこちら。
ギャラリーからの画像読み込みでエラーが出るときの修正方法|Workpiles
http://workpiles.com/2014/07/android-gallary-intent/
実装方法は下記のとおりです。
関数になっているので、このままコピー&ペーストしていただければ動くかと思います。
private String getPictPath(Uri uri) { String id = DocumentsContract.getDocumentId(uri); String selection = "_id=?"; String[] selectionArgs = new String[]{id.split(":")[1]}; File file = null; Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.MediaColumns.DATA}, selection, selectionArgs, null); if (cursor != null && cursor.moveToFirst()) { file = new File(cursor.getString(0)); } cursor.close(); if(file != null){ return file.getAbsolutePath(); } return null; }
getPictPath()
の引数に、変換したい画像のUriを渡せばOKです。
以上、簡単ですが画像のUriからファイルパスを取得する方法でした。
実際に使う機会は多くはないと思いますが、参考にしていただければと思います。