Apakah ada cara standar untuk memanggil kotak dialog dengan memilih untuk memilih gambar dari kamera atau untuk mengambil dari galeri (seperti di buku telepon built-in atau Skype)?
Saya telah melihat ini tetapi kode membuka galeri tanpa menyarankan untuk mengambilnya dari kamera.
Perangkat: Samsung Galaxy Tab
Android: 2.3.3
Jawaban:
Kode di bawah ini dapat digunakan untuk mengambil foto dan mengambil foto. Cukup tunjukkan dialog dengan dua opsi dan setelah pemilihan, gunakan kode yang sesuai.
Untuk mengambil gambar dari kamera:
Untuk memilih foto dari galeri:
onActivityResult
kode:Terakhir tambahkan izin ini di file manifes:
sumber
Intent
sebagai fallback akan memunculkan SecurityException. Info lebih lanjut: plus.google.com/+AndroidDevelopers/posts/e9kyM7VXajzSaya telah menggabungkan beberapa solusi untuk memanfaatkan sepenuhnya untuk memilih gambar dari Galeri atau Kamera. Ini adalah fitur util gist ImagePicker (juga di lib Github ):
Tangkapan layar:
Sunting : Berikut adalah potongan kode untuk menggabungkan Intent untuk aplikasi Galeri dan Kamera. Anda dapat melihat kode lengkapnya di ImagePicker util gist (juga di lib Github ):
sumber
boolean isCamera = (imageReturnedIntent == null || imageReturnedIntent.getData() == null);
getTempFile
dan bagaimana menggunakan fungsi ini? perbarui jawabannyaFileProvider
untuk menggunakan API> = 23 danUri
lebih sedikit.Perpustakaan ini membuatnya sederhana.
Panggil Saja:
Kemudian buat Aktivitas Anda mengimplementasikan IPickResult dan mengganti metode di bawah ini.
sumber
Anda dapat menerapkan kode ini untuk memilih gambar dari galeri atau kamera: -
Sekarang pada acara klik tombol, Anda dapat memanggil metode Anda untuk memilih Gambar. Ini ada di dalam onCreate aktivitas.
Di luar oncreate aktivitas Anda.
Atlast, akhirnya tambahkan kamera dan tulis izin penyimpanan eksternal ke AndroidManifest.xml
Ini sangat berhasil untuk saya, semoga berhasil juga untuk Anda.
sumber
Saya pikir itu terserah Anda untuk menunjukkan dialog itu untuk memilih. Untuk Galeri Anda akan menggunakan kode itu, dan untuk Kamera coba ini .
sumber
Jika Anda ingin mendapatkan gambar dari galeri atau menangkap gambar dan mengaturnya ke tampilan gambar dalam mode potret maka kode berikut akan membantu Anda ..
Di onCreate ()
Semoga Ini akan membantu Anda .... !!!
Jika targetSdkVersion lebih tinggi dari 24, FileProvider digunakan untuk memberikan akses.
Buat file xml (Path: res \ xml) provider_paths.xml
Tambahkan Penyedia di AndroidManifest.xml
dan ganti
Untuk
sumber