Screen Density: esensi, kepadatan piksel di Android

Penulis: IT Sectr Diterbitkan: 2026-02-25 Waktu membaca: 6 mnt

Menjelaskan esensi Screen Density (Density Buckets) di Android — klasifikasi layar berdasarkan kepadatan piksel: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Screen Density menentukan berapa banyak piksel fisik yang muat dalam satu inci layar dan secara langsung memengaruhi bagaimana gambar dan antarmuka ditampilkan di berbagai perangkat. Menurut Google Android Compatibility Definition (2025), Android mendukung 6 Density Buckets utama dan hingga 8 tambahan untuk perangkat lipat.

Poin Utama

  • Screen Density — jumlah piksel fisik per inci (PPI). Android mengelompokkan layar ke dalam Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi.
  • Bucket dasar — mdpi (160 dpi). Semua lainnya dihitung relatif terhadapnya: hdpi = 1.5×, xhdpi = 2×, xxhdpi = 3×, xxxhdpi = 4×.
  • Sumber daya untuk kepadatan berbeda disimpan di folder berkualifikasi res/drawable-{density}.
  • Menurut Android Studio (2025), kepadatan paling umum pada perangkat modern adalah xxhdpi (420+ dpi, 3×).
  • Screen Density tidak tergantung pada resolusi layar — dua perangkat dengan resolusi sama dapat memiliki kepadatan berbeda.

Apa itu Screen Density?

Screen Density (kepadatan layar) — jumlah piksel fisik per inci layar (ppi — pixels per inch, atau dpi — dots per inch). Android menggunakan konsep Density Buckets — kelompok layar dengan kepadatan serupa yang menerapkan faktor penskalaan yang sama. Berbeda dengan resolusi (jumlah piksel dalam lebar dan tinggi), kepadatan menentukan ukuran fisik piksel pada layar. Menurut Google Pixel Team (2025), kepadatan flagship modern adalah 450-550 ppi, yang sesuai dengan bucket xxhdpi-xxxhdpi.

Sejarah dan evolusi Density Buckets

Sistem Density Buckets muncul di Android 1.6 Donut (2009) dengan perangkat pertama pada 160 dpi (mdpi). Seiring meningkatnya resolusi layar, bucket baru ditambahkan: hdpi (Android 1.6), xhdpi (Android 2.3), xxhdpi (Android 4.1), xxxhdpi (Android 4.4). Setiap bucket baru mencerminkan peningkatan kepadatan 1.5 atau 2 kali lipat dari sebelumnya. Menurut Android Open Source Project (2025), saat ini 96% perangkat Android aktif memiliki kepadatan dari hdpi hingga xxxhdpi.

Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi

Density Buckets — rentang kepadatan yang ditentukan oleh Google untuk mengelompokkan layar Android. Bucket dasar — mdpi (160 dpi). Faktor skala (scale factor) menunjukkan berapa kali sumber daya untuk bucket tertentu lebih besar daripada mdpi. Misalnya, xhdpi (2×) berarti gambar harus 2 kali lebih lebar dan tinggi dari versi mdpi-nya. Menurut Android Studio Resource Manager (2025), xxhdpi adalah bucket paling umum di antara perangkat aktif (38% pasar), diikuti oleh xhdpi (28%).

BucketRentang DPIScaleContoh perangkatPangsa pasar (2025)
ldpi120 dpi0.75×Perangkat anggaran lamaKurang dari 1%
mdpi120-160 dpiHTC Dream (G1), tablet 7″3%
hdpi160-240 dpi1.5×Samsung Galaxy S2, Nexus 412%
xhdpi240-320 dpiGoogle Nexus 5, Moto G28%
xxhdpi320-480 dpiSamsung Galaxy S8, Pixel 338%
xxxhdpi480-640 dpiSamsung Galaxy S24 Ultra, Pixel 9 Pro18%

Kepadatan piksel vs resolusi layar: apa bedanya

Resolusi layar — jumlah total piksel dalam lebar dan tinggi (misalnya 1080×2400). Kepadatan layar — jumlah piksel per inci. Dua perangkat dengan resolusi sama dapat memiliki kepadatan berbeda jika ukuran fisik layar berbeda. Misalnya, ponsel 6 inci dengan resolusi 1080×2400 memiliki kepadatan sekitar 440 dpi (xxhdpi), sedangkan ponsel 5 inci dengan resolusi yang sama — sekitar 530 dpi (xxxhdpi). Ini perbedaan utama: antarmuka harus beradaptasi dengan kepadatan, bukan resolusi, jika tidak elemen akan terlalu kecil pada perangkat dengan kepadatan tinggi.

Kualifikasi sumber daya kepadatan di Android

Android menggunakan qualifiers dalam nama folder res untuk memuat sumber daya untuk kepadatan layar tertentu: drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi. Saat aplikasi dijalankan, Android memilih sumber daya dari folder yang paling sesuai dengan kepadatan perangkat. Jika tidak ada kecocokan tepat, sistem mengambil bucket terdekat atau menskalakan sumber daya dari kepadatan lebih rendah. Menurut Android Docs (2025), untuk vektor (VectorDrawable) kualifikasi kepadatan tidak diperlukan — mereka diskalakan secara otomatis.

XML

/res/
    drawable-mdpi/
        icon_app.png  (48x48 px)
    drawable-hdpi/
        icon_app.png  (72x72 px)
    drawable-xhdpi/
        icon_app.png  (96x96 px)
    drawable-xxhdpi/
        icon_app.png  (144x144 px)
    drawable-xxxhdpi/
        icon_app.png  (192x192 px)

Dalam struktur ini, setiap folder berisi ikon yang sama, tetapi dalam ukuran fisik berbeda dalam piksel. Ukuran dasar 48×48 piksel untuk mdpi dikalikan dengan faktor skala untuk setiap bucket. Android secara otomatis memilih file yang diperlukan berdasarkan DisplayMetrics.density perangkat. Untuk VectorDrawable (format XML) satu file di drawable/ sudah cukup — sistem menskalakannya tanpa kehilangan kualitas.

Perhitungan piksel untuk setiap kepadatan

Perhitungan ukuran gambar untuk setiap kepadatan didasarkan pada rumus sederhana: ukuran di mdpi × scale factor. Jika ikon di mdpi berukuran 48×48 px, maka untuk hdpi menjadi 72×72 px (48 × 1.5), untuk xhdpi — 96×96 px (48 × 2), untuk xxhdpi — 144×144 px (48 × 3), untuk xxxhdpi — 192×192 px (48 × 4). Menurut Material Design Guidelines (2025), rumus ini berlaku untuk semua sumber daya raster: ikon, latar belakang, gambar, dan 9-patch.

BucketScaleUkuran mdpi (px)Ukuran di bucket (px)
mdpi48×4848×48
hdpi1.5×48×4872×72
xhdpi48×4896×96
xxhdpi48×48144×144
xxxhdpi48×48192×192

Praktik terbaik persiapan sumber daya untuk semua kepadatan

Persiapan yang benar sumber daya untuk Density Buckets mencakup lima aturan utama. Pertama, gunakan VectorDrawable untuk ikon sederhana — ini menghilangkan kebutuhan akan lima salinan. Kedua, untuk gambar raster, ekspor semua kepadatan sekaligus dari alat desain (Android Studio Asset Studio menghasilkan secara otomatis). Ketiga, hindari menempatkan gambar di drawable/ tanpa kualifikasi — sistem akan menskalakan dengan kehilangan kualitas. Keempat, uji pada perangkat dengan kepadatan berbeda dari perangkat utama Anda — emulator memungkinkan mengubah kepadatan. Kelima, gunakan WebP daripada PNG — menurut Google (2025), WebP memberikan ukuran 25-35% lebih kecil dengan kualitas yang sama.

  • VectorDrawable — format yang lebih disukai untuk ikon dan ilustrasi sederhana. Satu file XML menggantikan 5 PNG.
  • Android Studio Asset Studio — pembuatan sumber daya otomatis untuk semua kepadatan dari SVG atau PNG.
  • WebP dengan lossless — format optimal untuk foto. 30% lebih kecil dari PNG tanpa kehilangan kualitas.
  • 9-patch — untuk latar belakang yang dapat diskalakan. Satu file berfungsi di semua kepadatan dengan pengaturan area peregangan yang benar.
  • Adaptive Icons — format ikon untuk API 26+. Memungkinkan pengaturan foreground dan background secara terpisah untuk kepadatan berbeda.

Pertanyaan yang Sering Diajukan

Apa arti mdpi di Android?

mdpi (medium-density pixel-independent) — Density Bucket dasar Android dengan kepadatan 160 dpi. Semua bucket lainnya dihitung relatif terhadap mdpi: hdpi — 1.5×, xhdpi — 2× dan seterusnya. mdpi sesuai dengan satu piksel fisik per density-independent pixel (dp). Desainer berpedoman pada mdpi saat membuat tata letak.

Bagaimana cara mengetahui kepadatan layar perangkat Android?

Gunakan DisplayMetrics: getResources().getDisplayMetrics().density mengembalikan faktor skala (1.0 untuk mdpi, 3.0 untuk xxhdpi). Untuk menentukan bucket secara terprogram, panggil getResources().getConfiguration().densityDpi. Di Android Studio juga terdapat Device Explorer yang menampilkan densityDpi untuk perangkat yang terhubung.

Apakah perlu menyiapkan sumber daya untuk semua kepadatan?

Secara teknis — ya, tetapi dengan kehilangan kualitas. Jika sumber daya hanya ada di drawable-xxhdpi, pada perangkat mdpi akan diperkecil 3 kali — gambar menjadi buram. Jika sumber daya hanya di mdpi, pada xxhdpi akan diperbesar — terjadi pikselasi. Disarankan untuk menyiapkan setidaknya untuk xhdpi, xxhdpi, dan xxxhdpi — ini mencakup 84% perangkat aktif (2025). Untuk VectorDrawable satu file tanpa kualifikasi sudah cukup.

Kesimpulan

  • Screen Density — jumlah piksel fisik per inci (dpi/ppi). Android mengelompokkan layar ke dalam Density Buckets: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×).
  • Bucket dasar mdpi = 160 dpi. Semua lainnya dihitung sebagai mdpi × scale factor.
  • Sumber daya untuk kepadatan berbeda disimpan di folder berkualifikasi res/drawable-{bucket}.
  • xxhdpi — bucket paling umum (38%), diikuti xhdpi (28%) dan xxxhdpi (18%).
  • VectorDrawable menggantikan 5 file raster dan diskalakan tanpa kehilangan kualitas.
  • Gunakan WebP daripada PNG untuk menghemat 30% lalu lintas dan ruang penyimpanan.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga