Saya mencoba untuk mendapatkan gambar dari galeri.
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select picture"), resultCode );
Setelah saya kembali dari kegiatan ini saya memiliki data yang berisi Uri. Sepertinya:
content://media/external/images/1
Bagaimana cara mengubah jalur ini menjadi jalur nyata (seperti ' /sdcard/image.png
')?
Terima kasih
android
image-gallery
davs
sumber
sumber
uri.getPath()
tidak memberi Anda jalan nyata?Jawaban:
Apakah Anda benar-benar perlu mendapatkan jalur fisik?
Misalnya,
ImageView.setImageURI()
danContentResolver.openInputStream()
memungkinkan Anda mengakses konten file tanpa mengetahui jalur aslinya.sumber
Inilah yang saya lakukan:
dan:
CATATAN:
managedQuery()
metode tidak digunakan lagi, jadi saya tidak menggunakannya.Edit terakhir: Peningkatan. Kita harus menutup kursor !!
sumber
@Rene Juuse - di atas dalam komentar ... Terima kasih untuk tautan ini!
. kode untuk mendapatkan jalur sebenarnya sedikit berbeda dari satu SDK ke lainnya jadi di bawah ini kami memiliki tiga metode yang menangani SDK yang berbeda.
getRealPathFromURI_API19 (): mengembalikan jalur nyata untuk API 19 (atau lebih tinggi tetapi tidak diuji) getRealPathFromURI_API11to18 (): mengembalikan jalur nyata untuk API 11 ke API 18 getRealPathFromURI_below11 (): mengembalikan jalur nyata untuk API di bawah 11
font: http://hmkcode.com/android-display-selected-image-and-its-real-path/
UPDATE 2016 Maret
Untuk memperbaiki semua masalah dengan jalur gambar saya mencoba membuat galeri khusus sebagai facebook dan aplikasi lain. Ini karena Anda hanya dapat menggunakan file lokal (file nyata, bukan virtual atau sementara), saya menyelesaikan semua masalah dengan perpustakaan ini.
https://github.com/nohana/Laevatein (perpustakaan ini untuk mengambil foto dari kamera atau memilih dari galeri, jika Anda memilih dari galeri dia memiliki laci dengan album dan hanya menunjukkan file lokal)
sumber
Catatan Ini adalah peningkatan dalam jawaban @ user3516549 dan saya telah memeriksanya di Moto G3 dengan Android 6.0.1
Saya mengalami masalah ini, jadi saya telah mencoba jawaban @ user3516549 tetapi dalam beberapa kasus tidak berfungsi dengan baik. Saya telah menemukan bahwa di Android 6.0 (atau lebih tinggi) ketika kita memulai maksud pengambilan gambar galeri maka layar akan terbuka yang menunjukkan gambar terbaru ketika pengguna memilih gambar dari daftar ini kita akan mendapatkan uri sebagai
sedangkan jika pengguna memilih galeri dari laci geser bukan yang terbaru maka kita akan mendapatkan uri sebagai
Jadi saya harus menanganinya
getRealPathFromURI_API19()
EDIT: jika Anda mencoba untuk mendapatkan jalur gambar file di sdcard eksternal dalam versi yang lebih tinggi kemudian periksa pertanyaan saya
sumber
EDIT: Gunakan Solusi ini di sini: https://stackoverflow.com/a/20559175/2033223 Bekerja sempurna!
Pertama, terima kasih atas solusi Anda @luizfelipetx
Saya mengubah solusi Anda sedikit. Ini bekerja untuk saya:
Catatan: Jadi kami mendapat dokumen dan gambar, tergantung, apakah gambar itu berasal dari 'terbaru', 'galeri' atau apa pun. Jadi saya mengekstrak ID gambar terlebih dahulu sebelum mencarinya.
sumber
Hai, ini kode lengkap saya untuk mengambil gambar dari kamera atau galeri
// Deklarasi variabel saya
// Onclick
// metode tubuh
// Dan hal lainnya
sumber
options.inSampleSize = calculateInSampleSize(options, 100, 100);
Ini membantu saya mendapatkan uri dari Galeri dan mengonversi ke file untuk unggahan Multipart
https://github.com/iPaulPro/aFileChooser/blob/master/aFileChooser/src/com/ipaulpro/afilechooser/utils/FileUtils.java
sumber