Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Android SDK: Menampilkan gambar dengan galeri ditingkatkan

by
Read Time:14 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Taufan Prasetyo Basri (you can also view the original English article)

Menggunakan Android maksud dan tampilan Galeri, Anda dapat membolehkan pengguna untuk memilih gambar dari perangkat mereka. Dalam tutorial ini kita akan menggabungkan gambar pilihan pengguna dengan tampilan Galeri, yang kami akan meningkatkan sedikit untuk membuat sebuah layar interaktif menampilkan pengguna yang dipilih gambar. Jika Anda telah menyelesaikan setidaknya satu aplikasi Android, Anda harus mampu melaksanakan langkah-langkah dalam tutorial.

App yang kita akan membangun dalam tutorial ini akan menampilkan daftar bergulir gambar thumbnail, menggunakan tampilan Galeri Android. Pengguna akan dapat mengimpor gambar untuk menampilkan dengan panjang-menekan item dalam galeri, di mana mereka akan dibawa ke default Galeri Android aplikasi atau manajer file pilihan mereka. Ketika gambar yang dipilih kembali ke aplikasi, kita akan resample itu sebelum layar, sehingga kami tidak menggunakan sumber daya memori yang tidak perlu. Pada menekan sebuah pratayang gambar, app akan menampilkan gambar yang dipilih pada ukuran yang lebih besar.

Langkah 1: Buat sebuah proyek Android

Memulai sebuah proyek baru Android di Eclipse. Di kelas Aktivitas utama aplikasi Anda, tambahkan pernyataan impor berikut di bagian atas, sebelum garis deklarasi kelas pembuka:

Deklarasi kelas Anda harus memulai sesuatu seperti ini, tetapi dengan nama Kegiatan Anda sendiri:

Di dalam deklarasi kelas, sebelum metode "onCreate", yang Eclipse seharusnya secara otomatis dimasukkan, tambahkan Deklarasi variabel contoh ini:

Variabel pertama, yang konstan, adalah untuk mengidentifikasi gambar chooser maksud ketika gambar pilihan pengguna kembali ke aplikasi. Ketika pengguna menekan lama suatu item thumbnail dan dikeluarkan dari aplikasi untuk memilih gambar, kami akan menggunakan variabel 'currentPic' untuk melacak thumbnail yang mereka pilih untuk gambar. Dua variabel lainnya adalah untuk item antarmuka pengguna yang perlu kami rujuk di kelas.

Dalam manifest file, penambahan hanya Anda perlu adalah sebagai berikut, ditambahkan ke aplikasi Anda unsur aktivitas utama:

Ini akan memungkinkan aplikasi untuk mempertahankan Impor gambar pada orientasi perubahan. Sekarang mari kita setup teks string kita ingin menggunakan dalam antarmuka pengguna. Buka file "res/values/strings.xml". Gerhana harus telah menambahkan nama aplikasi sudah, yang Anda dapat mengubah jika Anda inginkan. Mencakup unsur-unsur String tambahan berikut:

Ini semua untuk digunakan dalam antarmuka pengguna. Sekarang kembali ke aplikasi Anda aktivitas kelas.

Langkah 2: Desain aplikasi

Sebelum kita menerapkan fungsi aplikasi di Jawa, mari kita menyelesaikan elemen desain. Buka "res/layout/main.xml" file. Kita akan menggunakan tata letak linier, jadi mencakup garis besar berikut dalam XML utama Anda:

Kami akan menambahkan unsur-unsur lain dalam tata letak Linear. Memulai dengan pandangan teks yang informatif sebagai item pertama dalam tata letak linier:

Perhatikan bahwa kita merujuk pada sebuah String yang kita didefinisikan dalam file XML string. Selanjutnya tambahkan elemen Galeri sebagai berikut:

Kami menggunakan atribut ID sehingga kita dapat merujuk ke galeri dalam kode Jawa. Selanjutnya tambahkan pandangan lain informatif teks:

Sekali lagi, kami menggunakan sumber daya string yang sudah didefinisikan. Akhirnya, item terakhir dalam Linear Layout kami akan menjadi Tampilan Gambar untuk menampilkan satu gambar Galeri pada ukuran yang lebih besar:

Kita perlu mengacu pada Tampilan ini di Java, jadi kami menggunakan atribut ID. Kami juga menggunakan sumber daya string sebagai deskripsi konten. Sekarang kita perlu mendefinisikan beberapa atribut gaya untuk Galeri. Buat file baru di direktori 'res / values' Anda, beri nama 'attrs.xml'. Masukkan kode berikut:

Kami akan menggunakan beberapa sumber daya gaya platform Android untuk menata item Galeri kami, dan akan merujuk ini di kode Java.

Sekarang kembali ke kelas Activity Anda. Di dalam metode "onCreate", kode yang ada harus muncul sebagai berikut:

Setelah baris tersebut, tambahkan berikut, mengambil referensi ke dua item antarmuka pengguna:

Sekarang kita siap untuk membangun Galeri dan menangani interaksi pengguna.

Langkah 3: Buat Base Adapter

Untuk membangun Tampilan Galeri, kita akan membuat kelas yang memperluas kelas Adaptor Dasar. Di kelas Activity Anda, setelah metode 'onCreate', buat garis besar kelas baru sebagai berikut:

Dalam hal ini kami akan memberikan beberapa metode yang diperlukan oleh adaptor dasar dan kemudian akan menambahkan beberapa metode kustom untuk aplikasi ini. Pertama, di dalam kelas baru, menambahkan beberapa contoh variabel:

Variabel pertama mewakili Android Galeri item latar belakang kami dirujuk dalam kami "attrs.xml" file. Konteksnya adalah untuk merujuk ke antarmuka pengguna saat menambahkan elemen. Array Bitmap akan menyimpan bitmap yang akan kita tampilkan sebagai bagian dari Tampilan Galeri. Untuk mulai dengan, kita akan menggunakan gambar placeholder, untuk item Galeri pengguna belum memilih gambar untuk belum.

Mari kita pergi ke depan dan menciptakan metode konstruktor untuk kami baru PicAdapter kelas, setelah variabel instan:

Kami akan menambahkan lebih banyak kode ke metode konstruktor selanjutnya. Di sini kita pertama instantiate variabel array konteks dan Bitmap - kita akan menampilkan sebuah galeri dengan 10 item di dalamnya tetapi Anda dapat mengubah ini jika Anda suka. Untuk demonstrasi, kami menggunakan ikon pelancar yang disediakan sebagai standar ketika Anda membuat sebuah proyek Android di Eclipse sebagai gambar pengganti kami, tetapi Anda dapat tentu saja membuat Anda sendiri. Jika Anda ingin menggunakan gambar Anda sendiri, simpanlah ke folder yang dapat digambar dan ubah baris 'decodeResource' di kode di atas untuk mencerminkan namanya.

Sekarang kami dapat menetapkan gambar pengganti untuk setiap posisi dalam array, sehingga semua thumbnail Galeri awalnya akan menampilkan-masih di dalam metode pembuat:

Untuk menyelesaikan metode konstruktor, kita sekarang mengatur gambar latar belakang Galeri item:

Di sini kita merujuk pada isi dari kami "attrs.xml" file.

Sekarang kita perlu menyediakan beberapa metode standar untuk setiap kelas yang memperluas kelas Base Adapter. Pertama termasuk metode 'getCount', setelah metode konstruktor:

Metode ini mengembalikan jumlah item dalam Tampilan Galeri. Setelah metode ini, tambahkan metode 'getItem' standar:

Selanjutnya tambahkan metode "getItemId":

Anda tidak perlu khawatir terlalu banyak tentang isi dari metode ini karena mereka standar. Sekarang kami menambahkan metode yang sedikit lebih rumit yang dibutuhkan oleh kelas:

Dalam metode "getView", kita mendefinisikan apa yang kita ingin muncul dalam setiap Galeri item. Kami array Bitmap akan memuat gambar yang kita ingin menampilkan di setiap posisi, dengan indeks array Bitmap yang sesuai dengan posisi dalam galeri. Juga menciptakan tampilan, di sini kami mengatur Bitmap muncul di dalamnya, bersama-sama dengan beberapa properti tampilan. Kami juga mengatur latar belakang item kami dirujuk sebelumnya. Anda dapat mengubah ukuran thumbnail jika Anda suka. Setiap gambar thumbnail akan tampak terpusat jika lebih kecil dari item Lihat - Anda dapat memilih, misalnya, untuk meregangkan gambar agar sesuai dengan thumnbail jika Anda suka, dengan mengubah 'ScaleType'.

Sekarang gulir ke bagian atas deklarasi kelas Aktivitas utama aplikasi Anda. Tambahkan sebuah variabel instance baru yang mewakili instance objek kelas baru yang baru saja dibuat:

Sekarang, dalam metode "onCreate", setelah kode Anda sudah ditambahkan, instantiate variabel Adapter dasar Anda dan mengaturnya sebagai adaptor untuk Galeri:

Ketika aplikasi awalnya diluncurkan, aplikasi akan terlihat seperti ini:

Pic Select LaunchPic Select LaunchPic Select Launch

Sekarang kami siap menangani interaksi pengguna.

Langkah 4: Memungkinkan pengguna untuk memilih gambar

Untuk memilih gambar yang akan ditampilkan di Galeri, pengguna akan menekan lama masing-masing item thumbnail. Dalam metode "onCreate" Anda, setelah kode yang sudah ada, menambahkan pendengar panjang-tekan berikut untuk setiap item dalam tampilan Galeri:

Di sini kita menciptakan baru "OnItemLongClickListener" dengan metode "onItemLongClick" di dalamnya. Di dalam metode ini, tambahkan kode berikut:

Luangkan waktu sejenak untuk melihat kode ini. Pertama, kami merekam item yang dipilih saat ini sehingga kami tahu item Galeri mana yang dipilih untuk gambar baru. Kemudian kode memberitahu aplikasi untuk membawa pengguna ke aplikasi pemilihan gambar pilihan mereka, yang mungkin merupakan galeri gambar Android atau aplikasi pengelola file. Dengan menentukan 'ACTION_GET_CONTENT', kami menginstruksikan aplikasi untuk mengembalikan apa pun yang dipilih pengguna. Karena kita mulai chooser maksud menggunakan "startActivityForResult", kita akan mampu menangani gambar kembali dalam kegiatan "onActivityResult" metode.

Apa yang terjadi ketika chooser gambar maksud mulai akan tergantung pada aplikasi yang user telah terinstal. Di perangkat saya, saya dapat memilih di antara dua aplikasi untuk pemilihan gambar:

Image Chooser App ChoiceImage Chooser App ChoiceImage Chooser App Choice

File gambar mana saja yang saya pilih di salah satu aplikasi ini akan dikembalikan ke aplikasi kami.

Langkah 5: Menangani Gambar yang Dikembalikan

Ketika pengguna memilih gambar dari mereka galeri atau file manager aplikasi, data akan kembali ke "onActivityResult" metode. Tambahkan metode kelas aktivitas Anda menggunakan garis besar berikut:

Di sini kami memeriksa bahwa kami telah menerima data yang valid dan bahwa data telah kembali dari Intent pemilihan gambar. Kami memanggil metode superclass di bagian akhir badan metode. Dalam pernyataan "jika" yang kedua, kita akan menambahkan semua kode kita perlu mengimpor pengguna pilihan gambar, dimulai dengan gambar URI:

Kita perlu melakukan sedikit lebih banyak pekerjaan untuk mengimpor gambar. Mulai dengan menyatakan beberapa variabel penolong:

Mari kita sekarang mencoba untuk mengambil jalan gambar:

Di sini kita mengambil gambar media data, kemudian permintaan menggunakan kursor, melewati URI untuk gambar yang dipilih oleh pengguna. "Jika" dan "lain" pernyataan mengakomodasi pengguna memilih citra mereka menggunakan apl Android galeri atau manajer file lain. Hasil akhir dari kode ini adalah kita memiliki jalur ke gambar yang dipilih.

Langkah 6: Tampilkan Gambar Sampel untuk Meminimalkan Penggunaan Memori

Daripada sekadar membaca gambar yang dipilih pengguna, kita perlu meminimalkan jumlah memori yang digunakan aplikasi. Dalam banyak kasus, gambar pada perangkat akan jauh lebih besar daripada apa yang kita dapat menampilkan dalam app. Untuk alasan ini, kami ingin resample setiap gambar sebelum membaca ke aplikasi ini. Masih di dalam pernyataan 'if' kedua di 'onActivityResult', tambahkan yang berikut:

Di dalam pernyataan ini kami akan mengulang dan mengimpor gambar. Mulailah dengan menetapkan lebar dan tinggi target untuk gambar Anda, yang seharusnya merupakan ukuran terbesar yang Anda inginkan untuk setiap gambar:

Sekarang kita perlu sebuah objek Bitmap pilihan untuk menangani decoding gambar:

Pertama kita ingin mengetahui tentang ukuran gambar:

Kita mengatakan Bitmap pilihan untuk men-decode dimensi gambar, tidak Bitmap itu sendiri. Kita akan menggunakan informasi ini untuk bekerja di luar ukuran sampel yang baik untuk mengimpor gambar di, mulai dengan inisialisasi variabel untuk menyimpannya:

Sekarang menghitung ukuran sample, jika target ukuran lebih kecil daripada ukuran default gambar:

Sekarang kita dapat mengatur ukuran sampel Bitmap:

Sekarang kita perlu mengubah pengaturan Bitmap pilihan untuk men-decode konten file itu sendiri, daripada hanya dimensi:

Akhirnya kita dapat memecahkan kode Bitmap menggunakan pilihan yang kami pilih:

Variabel 'pic' sekarang memegang gambar Bitmap yang ingin kita gunakan dalam aplikasi.

Langkah 7: Menambahkan pilihan gambar ke Galeri

Sekarang bahwa kita memiliki gambar yang dipilih pengguna diimpor, kita dapat menambahkannya ke array galeri. Kita perlu menambahkan metode kustom kelas dasar Adapter kami untuk melakukan hal ini. Di dalam deklarasi kelas dalam 'PicAdapter' Anda, tambahkan metode berikut setelah metode 'getView':

Sekarang kembali ke metode 'onActivityResult' Anda, setelah baris di mana Anda memecahkan kode file gambar, menyimpannya dalam variabel 'pic', tambahkan yang berikut:

Pertama kita memanggil metode baru untuk menambahkan gambar baru ke susunan Galeri, kemudian kita mengatur Adaptor lagi sehingga gambar baru akan langsung muncul dalam Tampilan Galeri.

Langkah 8: Menampilkan satu gambar pada ukuran yang lebih besar

Akhirnya, kami ingin menampilkan satu gambar pada ukuran yang lebih besar. Sebuah gambar akan muncul di Tampilan Gambar yang lebih besar ketika awalnya diimpor ke dalam aplikasi dan ketika pengguna memilihnya dari thumbnail Galeri. Pertama, mari kita menangani menampilkan gambar pada ukuran yang lebih besar ketika pengguna awalnya impor itu. Dalam metode "onActivityResult" Anda, setelah baris di mana Anda disebut "setAdapter", tambahkan berikut:

Kami memiliki variabel instance yang mewakili tampilan gambar yang lebih besar, sehingga hanya dapat mengaturnya dengan skala pilihan. Sekarang mari kita menangani menampilkan gambar yang lebih besar ketika pengguna mengklik thumbnail. Di kelas 'PicAdapter' Anda, tambahkan metode kustom lain setelah metode 'addPic':

Metode ini hanya mengembalikan gambar di posisi tertentu. Sekarang pergi ke metode "onCreate" aktivitas Anda. Setelah pendengar tekan lama yang Anda tambahkan, sertakan hal-hal berikut, terapkan pendengar klik untuk setiap item dalam Tampilan Galeri:

Metode "onItemClick" akan api setiap saat pengguna mengklik item di galeri. Kita memanggil metode "getPic" yang baru kami menambahkan kelas "PicAdapter" untuk kembali Bitmap pada posisi diklik, pengaturan ini sebagai tampilan gambar Bitmap untuk menampilkannya pada ukuran yang lebih besar.

Kesimpulan

Itulah kami apl galeri gambar lengkap. Mengujinya pada perangkat yang sebenarnya, mengimpor gambar oleh long-menekan thumbnail dan menekan masing-masing thumbnail pada gilirannya untuk menampilkannya pada ukuran yang lebih besar. Ketika pengguna telah memilih beberapa gambar, app akan muncul sesuatu seperti ini:

Gallery with Selected ImagesGallery with Selected ImagesGallery with Selected Images

Tentu saja, Anda dapat meningkatkan aplikasi sesuai dengan kebutuhan Anda sendiri, misalnya untuk memberikan gambar tambahan interaksi. Kode sumber disediakan untuk referensi, jadi Anda memastikan Anda memiliki semua elemen yang digabungkan dengan benar.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.