Android Unit: px (pixel), dp/dip (density-independent pixel) dan sp (scale-independent pixels)

tldr;

selalu gunakan sp untuk teks dan dp untuk yang lainnya. Kecuali, benar-benar terpaksa dan tahu benar konsekuensinya, gunakanalah px.

Ekosistem android dikenal dengan fragmentasi spesifikasi device yang sangat bervariasi. Tentunya ini tantangan tersendiri bagi developer. Untungnya, untuk masalah screen density yang bervariasi, sepertinya sudah diantisipasi oleh para pengembang platform Android di Google, dengan memperkenalkan dua unit/satuan baru yaitu dip/dp (density-independent pixel) dan sp (scale-independent pixels).

Misalkan ada dua tablet 7-inch (ukuran diagonal layar), tablet pertama (A) memiliki resolusi layar  1200x1920px 320dpi dan yang lainnya (B) beresolusi 2048x1536px 326dpi. Membuat button dengan ukuran 300x300px mungkin akan tampak normal pada  tablet tapi akan tampak kecil di tablet

Tapi akan berbeda jika kita spesifikasikan ukuran buttonnya dengan ukuran yang bergantung pada density layar alias menggunakan dip misal 300x300dp.

secara fisik ukuran button tersebut akan selalu sama pada ukuran layar yang berbeda.

Perhatikan gambar berikut:

Screen Shot 2015-07-15 at 1.45.58 PM

ukuran 200dp akan dikonversi pada device mdpi (device dengan density 160dpi/dots per inch) menjadi 200px dan menjadi 400px pada device xhdpi (density 420dpi) misal pada nexus 4. Sehingga ukuran tersebut tampak sama dan konsisten secara fisik untuk beragam device dengan ukuran layar yang berbeda.

serupa dengan dp adalah sp (scaled-independent pixels) yang kita gunakan untuk ukuran teks. Perbedaannya, dengan menggunakan satuan sp android akan menscale ukuran teks sesuai dengan setting ukuran teks di device (yang biasa dapat di akses melalui menu settings).

Jadi, selalu gunakan sp untuk teks dan dp untuk yang lainnya. Kecuali, kamu benar-benar terpaksa dan tahu benar konsekuensinya, jangan menggunakan satuan px. Jika kebetulan designer yang bekerja bersama anda belum tahu, beritahukan untuk selau menginformasikan spesifikasi design dengan dp/sp. Beberapa website berikut akan sangat membantu:

  1. http://developer.android.com/guide/practices/screens_support.html
  2. http://developer.android.com/training/multiscreen/screendensities.html
  3. http://dpi.lv/
  4. https://pixplicity.com/dp-px-converter/
  5. https://www.youtube.com/watch?v=zhszwkcay2A

Tulisan ini terinspirasi setelah membaca status path Sidiq (salah satu Android Developer Expert dari Indonesia )

One thought on “Android Unit: px (pixel), dp/dip (density-independent pixel) dan sp (scale-independent pixels)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s