Unit Ukuran Layar di Android dan Bagaimana Mengkonversinya

Sebelum mempelajari deskripsi masing-masing ViewGroup dalam Android, ada baiknya apabila kita mempelajari terlebih dahulu jenis-jenis ukuran yang digunakan dalam membuat UI Android.

Untuk menentukan ukuran elemen di UI Android, kita harus tahu terlebih dahulu tentang berbagai unit ukuran di layar Android berikut ini:
  • dp – Density-independent oixel. 1 dp sama dengan satu pixel pada layar 160 dpi. Ini adalah unit ukuran yang direkomendasikan bila kita menetapkan ukuran untuk macam-macam view di layout kita. Layar 160 dpi adalah density yang dijadikan patokan dasar dalam Android. Kita bisa menetapkan nya dalam “dp” atau “dip” bila ingin mengacu pada ‘density-independent pixel’.
  • sp – Scale-independent pixel. Ini mirip dengan ‘dp’ dan direkomendasikan untuk menentukan ukuran font.
  • pt - Point. Satu point sama dengan 1/72 inch, berdasarkan ukuran fisik layar.
  • px - Pixel. Berkaitan dengan pixel aktual di layar. Jenis ukuran ini tidak direkomendasikan, karena UI mungkin tidak akan me-render dengan benar pada perangkat dengan resolusi layar yang berbeda-beda.
Konversi DP ke PX

Rumus untuk mengkonversi dp ke px (pixels) adalah seperti berikut:

Pixels aktual = dp * (dpi/160), dimana dpi hanya bisa berupa 120, 160, 240, atau 320.

Jadi misalnya kita menset ‘Button’ dengan ukuran 160 dp pada layar 235 dpi, jadi lebar aktualnya adalah 160 * (240/160) = 240 px (catatan: layar 235 dpi akan diperlakukan sebagai 240). Bila dijalankan pada emulator 180 dpi (akan diperlakukan sebagai perangkat dengan 160 dpi), maka pixel aktualnya adalah 160 * (160/160) = 160 px. Dalam hal ini, satu dp sama dengan satu px.

Untuk membuktikannya, kita bisa menggunakan method ‘getWidth() dari object View untuk mendapatkan lebarnya dalam ukuran pixel:
Public void onClick(View view) {
Toast.makeText(this, String.valueOf(view.getWidth()), Toast.LENGTH_LONG).show();
}

No comments: