Menambahkan gambar ke aplikasi Android Anda

1. Pengantar

Dalam codelab ini, Anda akan mempelajari cara menambahkan gambar ke aplikasi menggunakan ImageView.

Prasyarat

  • Cara membuat dan menjalankan aplikasi baru di Android Studio.
  • Cara menambahkan dan menghapus, serta menetapkan atribut di TextViews menggunakan Layout Editor.

Yang akan Anda pelajari

  • Cara menambahkan gambar atau foto ke aplikasi Android.
  • Cara menampilkan gambar di aplikasi menggunakan ImageView.
  • Cara mengekstrak teks ke resource string untuk memudahkan penerjemahan aplikasi dan menggunakan kembali string tersebut.
  • Cara membuat aplikasi dapat digunakan oleh banyak orang.

Yang akan Anda buat

  • Memperluas aplikasi Selamat Ulang Tahun untuk menambahkan gambar.

Yang Anda perlukan

  • Komputer yang dilengkapi Android Studio.
  • Aplikasi dari codelab Membuat Kartu Ulang Tahun.

2. Menyiapkan aplikasi

  1. Buka project Anda dari codelab sebelumnya di Android Studio. Anda dapat menggunakan kode solusi atau kode yang sudah Anda buat. Saat Anda menjalankan aplikasi, maka akan terlihat seperti ini.

ab46eb841980bc5b.png

Menambahkan gambar ke project Anda

Dalam tugas ini, Anda akan mendownload gambar dari internet dan menambahkannya ke aplikasi Selamat Ulang Tahun.

  1. Klik di sini untuk mengakses gambar kartu ulang tahun Anda di GitHub.
  2. Klik tombol Download di sebelah kanan. Tindakan ini akan menampilkan gambar dengan sendirinya.

80745a1810838bd4.png

  1. Klik kanan pada gambar dan simpan file ke komputer sebagai androidparty.png. Catat tempat Anda menyimpannya (misalnya, folder Downloads).
  2. Di Android Studio, klik View > Tool Windows > Resource Manager di menu atau klik tab Resource Manager di sebelah kiri jendela Project.
  3. Klik tanda + yang ada di bawah Resource Manager, lalu pilih Import Drawables. Tindakan ini akan membuka file browser.

d7f72d9af346ff2c.png

  1. Di file browser, temukan file gambar yang sudah didownload, lalu klik Open.
  2. Klik Next. Android Studio akan menampilkan pratinjau gambar.
  3. Klik Import.
  4. Jika gambar berhasil diimpor, Android Studio akan menambahkan gambar ke daftar Drawable. Daftar ini mencakup semua gambar dan ikon Anda untuk aplikasi. Sekarang Anda dapat menggunakan gambar ini di aplikasi Anda.

e4a7e2568ab80e33.png

  1. Kembali ke tampilan project dengan mengklik View > Tool Windows > Project di menu atau tab Project di bagian paling kiri.
  2. Pastikan bahwa gambar ada di folder drawable pada aplikasi Anda dengan meluaskan app > res > drawable.

3af43a9ea1c39ed4.png

3. Menambahkan ImageView

Anda memerlukan sebuah tempat untuk menampilkan gambar di aplikasi Anda. Sama seperti Anda menggunakan TextView untuk menampilkan teks, Anda dapat menggunakan ImageView untuk menampilkan gambar.

Dalam tugas ini, Anda akan menambahkan ImageView ke aplikasi, dan menyetel gambarnya ke gambar kue yang sudah didownload. Kemudian Anda akan memosisikannya dan menyesuaikan ukurannya sehingga memenuhi layar.

Menambahkan ImageView dan menyetel gambarnya

  1. Di jendela Project, buka activity_main.xml (app > res > layout > activity_main.xml).
  1. Di Layout Editor, buka Palette dan tarik ImageView ke aplikasi Anda. Letakkan di dekat bagian tengah dan jangan tumpang-tindih dengan teks

Dialog Pick a Resource akan terbuka. Dialog ini mencantumkan semua resource gambar yang tersedia untuk aplikasi Anda. Perhatikan gambar tanggal lahir yang tercantum di bawah tab Drawable. Resource drawable adalah konsep umum untuk grafis yang dapat digambar di layar. Resource drawable ini termasuk gambar, bitmap, dan ikon serta banyak tipe resource lainnya yang digambar.

  1. Pada dialog Pick a Resource, temukan gambar kue dalam daftar Drawable.
  2. Klik gambar, lalu klik OK.

1f98a4e8c3dde1bd.gif

Tindakan ini akan menambahkan gambar ke aplikasi Anda, tetapi letaknya mungkin tidak pas dan ukurannya tidak memenuhi layar. Anda akan memperbaikinya di langkah berikutnya.

Memosisikan dan mengukur ImageView

  1. Klik dan tarik ImageView di sekitar Layout Editor, dan perhatikan bahwa saat Anda menyeret, kotak merah muda akan muncul di sekitar layar aplikasi di tampilan Design. Kotak merah muda menunjukkan batas layar untuk memosisikan ImageView.
  2. Letakkan ImageView dengan tepi kiri dan kanan sejajar kotak merah muda. Android Studio akan mengepaskan gambar ke tepi saat Anda hampir mencapainya. (Anda akan menangani bagian atas dan bawah sebentar lagi).

25ab8b0401429ebd.gif

Views di ConstraintLayout perlu memiliki batasan horizontal dan vertikal untuk memberi tahu ConstraintLayout cara memosisikannya. Anda akan menambahkan batasan tersebut nanti.

  1. Arahkan kursor ke lingkaran di bagian atas garis batas ImageView, dan tandai dengan lingkaran lain.
  2. Seret lingkaran ke bagian atas layar aplikasi, dan tanda panah akan menghubungkan lingkaran ke pointer seiring Anda menariknya. Tarik untuk mengepaskannya ke bagian atas layar. Anda telah menambahkan batasan dari bagian atas ImageView ke bagian atas ConstraintLayout.

f3b70726695ea8c9.gif

  1. Tambahkan batasan dari bagian bawah ImageView ke bagian bawah ConstraintLayout. Letaknya mungkin terlalu dekat dengan tepi untuk bisa ditarik, seperti yang Anda lakukan di bagian atas. Jika demikian, Anda dapat mengeklik tanda + di bagian bawah pada Constraint Widget di jendela Attributes untuk menambahkan batasan. Pastikan marginnya 0.

cdde37ea44d6bc1a.png

  1. Di panel Attributes, gunakan Constraint Widget untuk menambahkan margin 0 ke sisi kiri dan kanan. Tindakan ini akan otomatis membuat batasan ke arah tersebut.

1c58fd4afe6f83bb.png

Sekarang gambar sudah berada di tengah, tetapi belum memenuhi seluruh layar. Anda akan memperbaikinya di langkah berikutnya:

  1. Di bawah Constraint Widget di bagian Constraint, tetapkan layout_width ke 0dp (match constraint). 0dp adalah suatu singkatan untuk memberi tahu Android Studio agar menggunakan match constraint untuk lebar ImageView. Batasan yang baru saja Anda tambahkan akan menjadikannya selebar ConstraintLayout, dikurangi margin.

9fff7d632ac45a3d.png

  1. Tetapkan layout_height ke 0dp (match constraint). Batasan yang Anda tambahkan akan menjadikan ImageView setinggi ConstraintLayout, dikurangi margin.

704ef89d2286fd5f.png

  1. ImageView selebar dan setinggi layar aplikasi, tetapi gambar diletakkan di tengah dalam ImageView dan ada banyak spasi kosong di atas dan bawah gambar. Namun, karena komposisi seperti ini tidak terlihat menarik, Anda harus menyesuaikan scaleType dari ImageView, yang menjelaskan cara menyesuaikan ukuran dan menyelaraskan gambar. Baca lebih lanjut ScaleType dalam panduan referensi developer. Aplikasi Anda sekarang seharusnya terlihat seperti di bawah ini.

426fe4a377aef0c6.png

  1. Cari atribut scaleType. Anda mungkin perlu men-scroll ke bawah atau menelusuri atribut ini. Coba tetapkan nilai scaleType yang berbeda untuk mengetahui dampaknya.
  1. Setelah selesai, tetapkan scaleType ke centerCrop karena ini akan membuat gambar mengisi layar tanpa mendistorsinya.

32350f1cf95adb1d.png

Gambar kue kini akan memenuhi seluruh layar, seperti yang ditunjukkan di bawah ini.

b3ef159159143c95.png

Namun, kini Anda tidak dapat melihat tanda tangan dan ucapan selamat ulang tahun. Anda akan memperbaikinya di langkah berikutnya.

Memindahkan ImageView ke belakang teks

Setelah membuat ImageView agar mengisi layar, Anda tidak dapat melihat teksnya lagi. Itu karena gambar sekarang menutupi teks. Ternyata, urutan penempatan elemen UI sangatlah penting. Tadi Anda menambahkan TextViews terlebih dahulu, lalu menambahkan ImageView, yang berarti ImageView ada di posisi teratas. Jika Anda menambahkan sejumlah tampilan ke tata letak, tampilan tersebut akan ditempatkan di urutan belakang daftar tampilan yang ada, dan akan digambar sesuai urutannya dalam daftar. ImageView ditambahkan ke akhir daftar Views di ConstraintLayout, yang berarti akan digambar terakhir dan digambar di atas TextViews. Untuk memperbaikinya, Anda harus mengubah urutan tampilan dan memindahkan ImageView ke awal daftar agar digambar terlebih dahulu.

c52a8a80608e453.gif

Di Component Tree, klik ImageView, dan tarik ke atas TextViews tepat di bawah ConstraintLayout. Garis biru beserta ikon segitiga akan muncul dan menunjukkan batasan ImageView. Letakkan ImageView tepat di bawah ConstraintLayout.

140649e77bd4f05b.gif

ImageView sekarang ada di urutan pertama dalam daftar di bawah ConstraintLayout, dan TextViews berada setelahnya. Teks "Selamat Ulang Tahun, Bud!" dan "Dari Annisa". kini seharusnya terlihat. (Untuk saat ini, abaikan peringatan tidak ada deskripsi konten.)

Selamat! Anda telah menambahkan gambar ke aplikasi Android!

4. Menerapkan praktik coding yang baik

Saat Anda menambahkan TextViews di codelab sebelumnya, Android Studio menandainya dengan segitiga peringatan. Pada langkah ini, Anda akan memperbaiki peringatan tersebut dan juga memperbaiki peringatan di ImageView.

Menerjemahkan

Saat Anda menulis aplikasi, penting untuk diingat bahwa aplikasi mungkin diterjemahkan ke bahasa lain. Seperti yang sudah Anda pelajari di codelab sebelumnya, string adalah rangkaian karakter seperti "Selamat Ulang Tahun, Bud!".

String yang di-hardcode adalah string yang ditulis langsung dalam kode aplikasi Anda. String tersebut membuat aplikasi lebih sulit diterjemahkan ke bahasa lain, dan juga lebih sulit untuk digunakan kembali di berbagai tempat di aplikasi. Anda dapat mengatasi masalah tersebut dengan "mengekstrak string ke file resource". Itu berarti, masukkan string ke dalam sebuah file, beri nama, lalu gunakan nama tersebut setiap kali Anda ingin menggunakan string ini, bukan meng-hardcode string yang ada di dalam kode. Nama filenya akan tetap sama, meskipun Anda mengubah string atau menerjemahkannya ke bahasa lain.

c8cc318f2276fbf0.png

  1. Klik segitiga oranye di samping TextView pertama yang memuat tulisan "Selamat Ulang Tahun, Bud!" Android Studio akan membuka jendela berisi informasi lebih lanjut dan perbaikan yang disarankan. Anda mungkin perlu men-scroll ke bawah untuk melihat Suggested Fix.

Hardcoded string "Selamat Ulang Tahun, Bud!" should use @string resource  Issue id: HardcodedText  Suggested fix: Extract string resource

  1. Klik tombol Fix. Android Studio akan menampilkan dialog Extract Resource. Dalam dialog ini, Anda dapat menyesuaikan nama resource string dan sejumlah informasi terkait cara penyimpanannya. Resource name merupakan nama yang dipakai untuk string. Resource value adalah isi dari string-nya.
  2. Pada dialog Extract Resource, ubah Resource name menjadi happy_birthday_text. Resource string harus memiliki nama huruf kecil, dan jika namanya terdiri dari beberapa kata harus dipisahkan dengan garis bawah. Biarkan setelan lain menggunakan setelan default.

2849a324f8a7c805.png

  1. Klik tombol OK.
  2. Di panel Attributes, temukan atribut text, dan perhatikan bahwa Android Studio otomatis menetapkannya ke @string/happy_birthday_text untuk Anda.

579b6eff07a35331.png

  1. Buka strings.xml (app > res > values > strings.xml) dan perhatikan bahwa Android Studio telah membuat resource string yang disebut happy_birthday_text.
<resources>
    <string name="app_name">Happy Birthday</string>
    <string name="happy_birthday_text">Happy Birthday, Sam!</string>
</resources>

File strings.xml memiliki daftar string yang akan dilihat pengguna di aplikasi Anda. Perhatikan bahwa nama aplikasi Anda juga merupakan resource string. Dengan menempatkan string di satu tempat, Anda bisa menerjemahkan semua teks dalam aplikasi dengan mudah, dan menggunakan kembali string di berbagai bagian aplikasi dengan lebih mudah.

  1. Ikuti langkah yang sama untuk mengekstrak teks tanda tangan TextView, dan beri nama resource string-nya sebagai signature_text.

File yang sudah jadi akan terlihat seperti ini.

<resources>
    <string name="app_name">Happy Birthday</string>
    <string name="happy_birthday_text">Happy Birthday, Sam!</string>
    <string name="signature_text">From Emma.</string>
</resources>

Memeriksa aksesibilitas aplikasi Anda

Dengan mengikuti praktik coding yang baik untuk aksesibilitas, semua pengguna, termasuk pengguna dengan disabilitas, dapat lebih mudah menjelajahi dan berinteraksi dengan aplikasi Anda.

Android Studio menyediakan petunjuk dan peringatan agar aplikasi Anda lebih mudah diakses.

  1. Pada Component Tree, perhatikan segitiga oranye di sebelah ImageView yang sebelumnya Anda tambahkan. Jika mengarahkan pointer ke atasnya, Anda akan melihat tooltip yang berisi peringatan tentang atribut ‘contentDescription' yang tidak ada pada gambar. Deskripsi konten, yang berfungsi menjelaskan tujuan elemen UI, dapat membuat aplikasi Anda jadi lebih bermanfaat jika digunakan dengan fitur TalkBack.

Namun, gambar yang ada dalam aplikasi ini hanya disertakan sebagai penghias saja. Jadi, Anda tidak perlu menyetel deskripsi konten yang akan diucapkan kepada pengguna. Untuk melakukannya, cukup beri tahu TalkBack untuk melewati ImageView dengan menyetel atribut importantForAccessibility ke no.

  1. Di Component Tree, pilih ImageView.
  2. Di jendela Attributes, di bagian All Attributes, cari importantForAccessibility dan tetapkan ke no.

Segitiga oranye di samping ImageView akan hilang.

  1. Jalankan lagi aplikasi Anda untuk memastikan aplikasi masih berfungsi dengan baik.

Selamat! Anda telah menambahkan gambar ke aplikasi Selamat Ulang Tahun dengan mengikuti panduan aksesibilitas sehingga mudah diterjemahkan ke bahasa lain!

ba4136f24be200c4.png

5. Kode solusi

Kode solusi untuk aplikasi Selamat Ulang Tahun telah kami upload ke GitHub jika Anda ingin tahu seluruh kode yang dipakai untuk aplikasi ini.

GitHub adalah layanan yang dapat digunakan developer untuik mengelola kode project software yang mereka buat. Layanan ini menggunakan Git sebagai sistem kontrol versi yang memantau jika ada perubahan pada setiap versi kode. Jika Anda pernah melihat histori versi dokumen di Google Dokumen, Anda dapat melihat waktu dan hasil edit pada dokumen sebelumnya. Proses di GitHub kurang lebih sama, Anda dapat melacak histori versi kode yang ada di sebuah project. Cara ini sangat membantu jika Anda mengerjakan sendiri atau bersama tim.

GitHub juga memiliki situs web yang dapat digunakan untuk melihat dan mengelola project. Anda dapat menggunakan link GitHub berikut ini untuk mencari file project Selamat Ulang Tahun secara online atau mendownloadnya ke komputer.

Untuk mendapatkan kode yang dipakai pada codelab ini dan membukanya di Android Studio, lakukan hal berikut.

Mendapatkan kode

  1. Klik URL yang diberikan. Tindakan ini akan membuka halaman GitHub project di browser.
  2. Di halaman GitHub project, klik tombol Code yang akan menampilkan dialog.

1debcf330fd04c7b.png

  1. Di dialog, klik tombol Download ZIP untuk menyimpan project di komputer. Tunggu download selesai.
  2. Temukan file di komputer Anda (mungkin di folder Downloads).
  3. Klik dua kali pada file ZIP untuk mengekstraknya. Tindakan ini akan membuat folder baru yang berisi file project.

Membuka project di Android Studio

  1. Mulai Android Studio.
  2. Di jendela Welcome to Android Studio, klik Open an existing Android Studio project.

4948a0ef4afe4454.png

Catatan: Jika Android Studio sudah terbuka, pilih opsi menu File > New > Import Project.

3047d8205840651d.png

  1. Di dialog Import Project, buka lokasi folder project yang telah diekstrak (kemungkinan ada di folder Downloads).
  2. Dalam folder project, pilih folder Selamat Ulang Tahun.
  3. Klik Open.
  4. Tunggu Android Studio membuka project.
  5. Klik tombol Run 8de56cba7583251f.png untuk mem-build dan menjalankan aplikasi. Pastikan aplikasi di-build seperti yang diharapkan.
  6. Cari file project di jendela alat Project untuk melihat cara aplikasi disiapkan.

6. Ringkasan

  • Resource Manager di Android Studio membantu menambahkan dan mengatur gambar serta resource lainnya.
  • ImageView adalah elemen UI untuk menampilkan gambar di aplikasi.
  • ImageViews harus memiliki deskripsi konten agar aplikasi juga dapat diakses oleh penyandang disabilitas.
  • Teks yang ditampilkan kepada pengguna, seperti ucapan ulang tahun, harus diekstrak ke resource string agar aplikasi mudah diterjemahkan ke bahasa lain.

7. Mempelajari lebih lanjut

8. Berlatih sendiri

Lakukan hal berikut:

  1. Buat aplikasi kartu ulang tahun dengan desain Anda sendiri.
  2. Mulailah dengan memikirkan Views yang akan diperlukan.
  3. Urutan apa yang paling mudah untuk ditambahkan?
  4. Gambar apa yang perlu Anda tambahkan ke folder drawable?

Ada dua jenis gambar bitmap yang umum digunakan untuk aplikasi Android, yaitu file JPEG dan file PNG. File PNG dapat memiliki area transparan (kosong) di dalamnya. Baca format gambar selengkapnya di referensi developer.

  1. Jangan lupa memosisikan Views terlebih dahulu dengan batasan dan margin, lalu menata gayanya.
  2. Untuk membuat teks lebih menarik di beberapa gambar, coba bereksperimen dengan shadowColor, shadowDx, shadowDy, dan shadowRadius

b4480740bd2e2cd6.png

Periksa hasil kerja Anda:

Aplikasi yang sudah selesai akan berjalan tanpa error dan menampilkan kartu ulang tahun yang sudah Anda desain.

Selamat, Anda berhasil membuat Kartu Ulang Tahun sendiri! Bagikan aplikasi buatan Anda di media sosial, dan gunakan hashtag #LearningKotlin sehingga kami dapat melihatnya!