Gambar dan grafis

Meskipun aplikasi hanya dapat berisi teks dan warna, Anda mungkin ingin menambahkan lebih banyak elemen visual, seperti logo atau ilustrasi. Android memiliki praktik terbaik khusus untuk menambahkan grafis ke aplikasi Anda beserta berbagai library untuk membuat efek grafis atau menambahkan gerakan.

Aset Android disebut sebagai drawable, yakni jenis resource yang digambar di layar. Ini mencakup, tetapi tidak terbatas pada, bitmap, bentuk, dan vektor.

Saat membuat gambar dan grafik, perhatikan hal-hal berikut:

  • Hindari menyertakan teks yang tidak dapat diubah dalam aset.
  • Gunakan format vektor terlebih dahulu jika memungkinkan.
  • Menyediakan aset untuk bucket resolusi.
  • Berikan scrim yang memadai antara gambar latar dan teks.
  • Meskipun Android dapat menghasilkan efek gambar yang berbeda seperti gradien, pewarnaan, dan blur, beberapa performa memerlukan biaya yang lebih tinggi.
  • Animasi Vektor Drawable menyediakan format skalabel untuk animasi UI kecil.

Cara mengekspor aset untuk Android

  • Format nama aset dalam huruf kecil.
  • Setel aset sederhana untuk diekspor sebagai SVG.
  • Setel gambar kompleks, seperti foto, untuk diekspor sebagai WebP, PNG, JPG.
  • Setel penskalaan resolusi yang benar seperti yang ditunjukkan dalam tabel berikut.
Ukuran layar Skala

mdpi

x1

hdpi

x1,5

xhdpi

X2

xxhdpi

x3

xxxhdpi

X4

Anda juga dapat mengonversi SVG ke Vector Drawable (VD) menggunakan Android Studio. Atur aset ke dalam direktori yang sesuai dengan resolusi untuk penyerahan, seperti yang ditunjukkan pada gambar berikut. Misalnya, sertakan ukuran layar dalam nama folder.

direktori res terorganisir
Gambar 2. Direktori res terorganisir.

Jenis aset

Android mendukung jenis aset berikut.

Vektor

Grafik vektor adalah format lossless, yang berarti bahwa grafik vektor tidak akan kehilangan informasi visual saat diskalakan. Vektor terdiri dari titik matematika yang diisi untuk membuat gambar.

Gambar 3. Gambar kiri menampilkan gambar yang terdiri dari titik bezier grafis vektor yang kontras dengan gambar raster yang diperbesar di sebelah kanan.

Format vektor

Android mendukung format gambar vektor berikut: SVG dan Vector Drawable.

Vector Drawable terlihat mirip dengan SVG, tetapi berbasis XML. Gradien juga mendukung berbagai atribut, seperti gradien. Untuk informasi selengkapnya tentang apa yang didukung, lihat VectorDrawable. Anda dapat mengonversi SVG ke Vector Drawable melalui Vector Asset Studio.

Kasus penggunaan

Karena ukurannya yang kecil, lebih baik membuat ikon menggunakan format vektor. Animasi Vektor Drawable dapat digunakan untuk menambahkan gerakan pada ikon.

  • Ilustrasi adalah gambar yang membantu mengarahkan pengguna, menjelaskan konsep, atau mengekspresikan ide. Format ini biasanya mengekspresikan gaya brand.
  • Ilustrasi banner besar memberikan penekanan tinggi di antara konten lainnya, digunakan untuk menetapkan tampilan dan nuansa secara keseluruhan serta menjelaskan informasi utama.
  • Ilustrasi spot berukuran lebih kecil, biasanya inline, dan mendukung konten di sekitarnya.
Gambar 4. Ilustrasi hero dan ilustrasi spot inline.

Raster

Grafik lossy, atau grafik yang kehilangan detail saat dimanipulasi melalui kompresi atau penskalaan, terdiri dari piksel untuk membentuk gambar. Grafis raster biasanya digunakan untuk gambar yang mendetail seperti foto atau gradien yang kompleks. Karena detail gambar hilang saat diskalakan, ekspor beberapa resolusi gambar ini.

Format raster

Android mendukung format gambar raster berikut: PNG, GIF, JPG, WebP.

Kasus penggunaan

Kasus penggunaan mencakup gambar yang memiliki berbagai tekstur yang menghasilkan palet dan gradasi warna yang luas, atau gambar yang akan memiliki kumpulan titik bezier yang terlalu rumit. Kasus penggunaan juga dapat menyertakan aset foto yang sangat mendetail seperti foto produk, detail lokasi, dan lainnya.

Ukuran

Saat membuat aset, perhatikan hal-hal berikut.

Bucket resolusi

Aplikasi Anda harus menyediakan grafik bitmap berdasarkan rentang atau bucket kepadatan layar. Sistem operasi akan otomatis menampilkan grafis yang tepat ke perangkat yang dimaksud menggunakan bucket ini. Memastikan grafis fidelitas tinggi ditampilkan di setiap perangkat dengan menyediakan aset untuk setiap bucket.

Contoh ukuran resolusi gambar dan label bucket.
Gambar 5. Blewah pesta dalam kepadatan dan skala masing-masing dan berskala untuk ekspor.

Padding

Ikon dan aset kecil serupa harus menyertakan padding intrinsik (bawaan) untuk memberi aset ruang target sentuh yang cukup dan memastikan ukuran yang konsisten.

Gambar 6. Ikon 24 dp dengan padding yang disertakan dalam aset.

Nama file

Aset Android dalam huruf kecil dan tidak menyertakan akhiran resolusi.

Pertahankan konvensi dan struktur penamaan yang konsisten untuk menjaga agar file dan project Anda tetap teratur. Misalnya, memberi nama ikon dengan awalan "ic_..." dapat membantu mengatur semua ikon dalam project, dan membantu mengidentifikasi ikon dengan cepat selama pengembangan.

Aset aplikasi lainnya

Gambar 7. Ikon peluncur monokrom dan layar pembuka.

Ikon aplikasi

Ikon peluncur dapat ditemukan di layar utama. Temukan ikon monokrom di UI Sistem, termasuk notifikasi monokrom, status bar, dan widget.

Format ikon aplikasi sebagai vektor drawable untuk ikon adaptif dan PNG untuk ikon lama. Untuk mempelajari lebih lanjut cara membuat dan melihat pratinjau ikon aplikasi, lihat Mendesain dan Melihat Pratinjau Ikon Aplikasi.

Layar pembuka

Mulai Android 12, aplikasi Anda dapat menampilkan layar pembuka animasi yang menampilkan ikon aplikasi saat aplikasi terbuka.

Penempatan

Perhatikan cara gambar harus diskalakan dan diposisikan di layar. Fit, Crop, FillHeight, FillWidth, FillBounds, Inside, dan None tersedia untuk menyetel penskalaan pada gambar.

Gambar 8. Contoh pemangkasan.

Anda juga dapat memotong gambar ke suatu bentuk untuk membuat efek tambahan.

Pemangkasan responsif

Untuk menampilkan gambar secara responsif, tentukan cara gambar akan dipangkas pada rentang titik henti sementara yang berbeda. Pada rentang titik henti sementara yang berbeda, pemangkasan dapat:

  • Pertahankan satu rasio tetap.
  • Sesuaikan dengan rasio yang berbeda.
  • Mempertahankan tinggi gambar tetap.

Pertahankan satu rasio

Ukuran gambar dapat menyimpan satu rasio tetap di seluruh rentang titik henti sementara.

Gambar 9. Gambar yang ditampilkan dalam berbagai rasio aspek.

Sesuaikan dengan rasio yang berbeda

Rasio gambar dapat berubah dengan beradaptasi dengan rentang titik henti sementara yang berbeda. Misalnya, pada gambar 9, rasio gambar berubah dari 1:1 menjadi 16:9 antara titik henti sementara.

Ketinggian gambar tetap

Ukuran gambar dapat mempertahankan tinggi dan lebar yang tetap di seluruh dan dalam rentang titik henti sementara. Gambar mempertahankan tinggi tetap, sementara lebar di antara titik henti sementara dapat disesuaikan.

Efek

Android menyertakan berbagai efek gambar bawaan. Berikut ini beberapa efek yang umum:

Gradien

Di Compose, gunakan Brush untuk menggambar sesuatu di layar. Kuas yang berbeda dapat digunakan untuk menggambar bentuk dari berbagai warna atau gradien. Gunakan kuas gradien bawaan untuk mendapatkan efek gradien yang berbeda. Kuas ini memungkinkan Anda menentukan daftar warna yang ingin dibuat gradiennya.

Kuas gradien mampu menghasilkan gradien yang lebih canggih dengan menambahkan perhentian warna dan penyusunan ubin, selama Anda memberikan daftar warna dan persentase tempat berhenti terjadi. Gunakan penampung atau bentuk untuk memangkas gradien, isian warna solid, atau gambar.

Gambar 10. Terjemahkan gradien dari Figma menggunakan pengubah compose.

Pemburaman

Terapkan efek blur ke gambar menggunakan metode Modifier.blur() dan memberikan rasio blur. Gunakan blur dengan hati-hati karena dapat memengaruhi performa dan hanya tersedia di perangkat yang menjalankan Android 12 dan yang lebih baru. Untuk mengetahui informasi selengkapnya, lihat Memburamkan composable gambar.

Mode campuran

Android mampu memodifikasi gambar melalui operasi boolean serupa dan mode campuran yang mungkin Anda temukan dalam software desain, seperti gabungan atau pengali. Untuk mengetahui informasi selengkapnya, lihat BlendMode.

Tint

Gunakan mode campuran dan isian untuk menambahkan tint pada aset. Hal ini memungkinkan Anda memiliki satu aset dan menerapkan berbagai warna pada aset tersebut, sehingga dapat mengurangi jumlah aset yang dihasilkan.

Gambar 11. Aset dengan beragam tint yang digunakan untuk melengkapi warna konten atau untuk menunjukkan status yang berbeda.

Gerakan

Gambar dapat dianimasikan secara terprogram untuk membuat grafik gerak, dan bukan mengupload file gerakan. Hal ini dapat memungkinkan fleksibilitas yang lebih besar dan resource aset yang lebih kecil.

Animasi Vektor Drawable memungkinkan Anda membuat animasi UI kecil. Jika tidak, pelajari lebih lanjut cara membuat animasi dengan keyframe di Compose. Untuk mengetahui informasi selengkapnya tentang efek gambar, baca Menyesuaikan gambar.