Pertanyaan Apa perbedaan antara "px", "dip", "dp" dan "sp"?


Apa perbedaan antara satuan ukuran Android?

  • px
  • menukik
  • dp
  • sp

5152
2018-01-08 03:23


asal


Jawaban:


Dari Dokumentasi Pengembang Android:

  1. px
    Pixel - sesuai dengan piksel aktual di layar.

  2. di
    Inci - berdasarkan ukuran fisik layar.
      1 inci = 2,54 cm

  3. mm
    Milimeter - berdasarkan ukuran fisik layar.

  4. pt
    Poin - 1/72 inci berdasarkan ukuran fisik layar.

  5. dp atau menukik
    Massa jenis-independent Pixels - unit abstrak yang didasarkan pada kerapatan fisik layar. Unit-unit ini relatif terhadap 160       layar dpi, jadi satu dp adalah satu piksel pada layar 160 dpi. Rasio dari       dp-to-pixel akan berubah dengan kerapatan layar, tetapi tidak harus       dalam proporsi langsung. Catatan: Compiler menerima "dip" dan       "dp", meskipun "dp" lebih konsisten dengan "sp".

  6. sp
    Skala- Piksel independen - ini seperti unit dp, tetapi juga diskalakan oleh preferensi ukuran font pengguna. Disarankan Anda       gunakan unit ini ketika menentukan ukuran font, sehingga mereka akan disesuaikan       untuk kerapatan layar dan preferensi pengguna.

Dari Memahami Densitas Kemerdekaan Di Android:

+----------------+----------------+---------------+-------------------------------+
| Density Bucket | Screen Density | Physical Size | Pixel Size                    | 
+----------------+----------------+---------------+-------------------------------+
| ldpi           | 120 dpi        | 0.5 x 0.5 in  | 0.5 in * 120 dpi = 60x60 px   | 
+----------------+----------------+---------------+-------------------------------+
| mdpi           | 160 dpi        | 0.5 x 0.5 in  | 0.5 in * 160 dpi = 80x80 px   | 
+----------------+----------------+---------------+-------------------------------+
| hdpi           | 240 dpi        | 0.5 x 0.5 in  | 0.5 in * 240 dpi = 120x120 px | 
+----------------+----------------+---------------+-------------------------------+
| xhdpi          | 320 dpi        | 0.5 x 0.5 in  | 0.5 in * 320 dpi = 160x160 px | 
+----------------+----------------+---------------+-------------------------------+
| xxhdpi         | 480 dpi        | 0.5 x 0.5 in  | 0.5 in * 480 dpi = 240x240 px | 
+----------------+----------------+---------------+-------------------------------+
| xxxhdpi        | 640 dpi        | 0.5 x 0.5 in  | 0.5 in * 640 dpi = 320x320 px | 
+----------------+----------------+---------------+-------------------------------+
+---------+-------------+---------------+-------------+--------------------+
| Unit    | Description | Units Per     | Density     | Same Physical Size | 
|         |             | Physical Inch | Independent | On Every Screen    | 
+---------+-------------+---------------+-------------+--------------------+
| px      | Pixels      | Varies        | No          | No                 | 
+---------+-------------+---------------+-------------+--------------------+
| in      | Inches      | 1             | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| mm      | Millimeters | 25.4          | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| pt      | Points      | 72            | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| dp      | Density     | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+
| sp      | Scale       | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+

Info lebih lanjut dapat juga ditemukan di Dokumentasi Desain Google.

Untuk menghitung dimensi pada perangkat nyata ini aplikasi dapat digunakan.


5187
2018-02-25 12:56



Hampir semua hal tentang ini dan cara mendapatkan dukungan terbaik untuk berbagai layar dengan ukuran dan kerapatan yang berbeda sangat didokumentasikan dengan baik di sini:

Ukuran layar
  Ukuran fisik sebenarnya, diukur sebagai diagonal layar.   Untuk mempermudah, Android mengelompokkan semua ukuran layar yang sebenarnya menjadi empat   ukuran umum: kecil, normal, besar, dan ekstra besar.

Kepadatan layar
    Jumlah piksel dalam area fisik dari   layar; biasanya disebut sebagai dpi (dots per inch). Misalnya, a   Layar kepadatan "rendah" memiliki lebih sedikit piksel dalam area fisik tertentu,   dibandingkan dengan layar kepadatan "normal" atau "tinggi". Untuk kesederhanaan,   Grup Android semua kerapatan layar yang sebenarnya menjadi enam umum   kepadatan: rendah, sedang, tinggi, ekstra tinggi, ekstra ekstra tinggi, dan   ekstra-ekstra-ekstra-tinggi.

Orientasi
Orientasi layar dari sudut pengguna   melihat. Ini adalah lanskap atau potret, yang berarti layar itu   rasio aspek lebar atau tinggi, masing-masing. Sadarilah bahwa tidak   hanya perangkat yang berbeda beroperasi dalam orientasi yang berbeda oleh   default, tetapi orientasi dapat berubah saat runtime saat pengguna   memutar perangkat.

Resolusi
 Jumlah total piksel fisik aktif   sebuah layar. Saat menambahkan dukungan untuk banyak layar, aplikasi melakukannya   tidak bekerja langsung dengan resolusi; aplikasi harus diperhatikan   hanya dengan ukuran layar dan kepadatan, sebagaimana ditentukan oleh umum   kelompok ukuran dan kepadatan.

Kerapatan piksel independen (dp)
 Sebuah virtual   unit piksel yang harus Anda gunakan saat mendefinisikan tata letak UI, untuk mengekspresikan   tata letak dimensi atau posisi dengan cara yang bebas kerapatan.   Kerapatan piksel independen setara dengan satu piksel fisik pada 160   layar dpi, yang merupakan densitas garis dasar yang diasumsikan oleh sistem untuk a   layar kepadatan "sedang". Saat runtime, sistem menangani secara transparan   penskalaan unit dp apa pun, bila perlu, berdasarkan kerapatan yang sebenarnya   dari layar yang digunakan. Konversi unit dp ke piksel layar adalah   sederhana:    px = dp * (dpi / 160).   Misalnya, pada layar 240 dpi, 1 dp   sama dengan 1,5 piksel fisik. Anda harus selalu menggunakan unit dp kapan   mendefinisikan UI aplikasi Anda, untuk memastikan tampilan UI Anda yang tepat   layar dengan kepadatan berbeda.

Jika Anda serius tentang mengembangkan aplikasi Android untuk lebih dari satu jenis perangkat, Anda harus membaca layar dokumen pengembangan dukungan setidaknya sekali. Selain itu, selalu baik mengetahui jumlah sebenarnya dari perangkat aktif yang memiliki konfigurasi layar tertentu.


606
2017-08-02 14:15



Saya akan menjelaskan lebih lanjut tentang bagaimana tepatnya dp mengkonversi ke px:

  • Jika dijalankan pada perangkat mdpi, a 150 x 150 px gambar akan mengambil 150 * 150 dp ruang layar.
  • Jika menjalankan perangkat hdpi, a 150 x 150 px gambar akan mengambil 100 * 100 dp ruang layar.
  • Jika menjalankan perangkat xhdpi, a 150x150 px gambar akan mengambil 75 * 75 dp ruang layar.

Sebaliknya: katakan, Anda ingin menambahkan gambar ke aplikasi Anda dan Anda membutuhkannya untuk mengisi 100 * 100 dp kontrol. Anda harus membuat gambar ukuran yang berbeda untuk ukuran layar yang didukung:

  • 100 * 100 px gambar untuk mdpi
  • 150 * 150 px gambar untuk hdpi
  • 200 * 200 px gambar untuk xhdpi

280
2017-10-30 09:43



px Pixel - Titik per skala sesuai dengan piksel aktual di layar.

di Inci - berdasarkan ukuran fisik layar.

mm Milimeter - berdasarkan ukuran fisik layar.

pt Poin - 1/72 inci berdasarkan ukuran fisik layar.

dp Massa jenis - Piksel independen - unit abstrak yang didasarkan pada kerapatan fisik layar. Unit-unit ini relatif terhadap layar 160 dpi, jadi satu dp adalah satu piksel pada layar 160 dpi. Rasio dp-to-pixel akan berubah dengan kerapatan layar,  tetapi tidak harus dalam proporsi langsung.  Catatan: Compiler menerima keduanya dip dan dp, meskipun dp lebih konsisten dengan sp.

sp Piksel -Scale-independen - ini seperti dp satuan,  tetapi juga diskalakan oleh preferensi ukuran font pengguna. Sebaiknya gunakan unit ini saat menentukan ukuran font,  jadi mereka akan disesuaikan untuk kerapatan layar dan preferensi pengguna.

Ambil contoh dua layar dengan ukuran yang sama tetapi satu layar memiliki kerapatan layar 160 dpi (titik per inci, yaitu piksel per inci) dan yang lainnya adalah 240 dpi.

                          Lower resolution   screen          Higher resolution, same size
Physical Width                      1.5 inches                        1.5 inches
Dots Per Inch (“dpi”)               160                               240
Pixels (=width*dpi)                 240                               360
Density (factor of baseline 160)    1.0                               1.5

Density-independent Pixels          240                               240
(“dip” or “dp” or “dps”)

Scale-independent pixels 
 (“sip” or “sp”)                  Depends on user font size settings    same

232
2017-07-26 21:19



Selain itu Anda harus memiliki pemahaman yang jelas tentang konsep-konsep berikut:

Ukuran layar:

Ukuran fisik sebenarnya, diukur sebagai diagonal layar. Untuk mempermudah, Android mengelompokkan semua ukuran layar yang sebenarnya   empat ukuran umum: kecil, normal, besar, dan ekstra besar.

Kepadatan layar: 

Jumlah piksel dalam area fisik layar; biasanya disebut sebagai dpi (dots per inch). Misalnya, a   Layar kepadatan "rendah" memiliki lebih sedikit piksel dalam area fisik tertentu,   dibandingkan dengan layar kepadatan "normal" atau "tinggi". Untuk kesederhanaan,   Grup Android semua kerapatan layar yang sebenarnya menjadi empat umum   kepadatan: rendah, sedang, tinggi, dan ekstra tinggi.

Orientasi: 

Orientasi layar dari sudut pandang pengguna. Ini adalah lanskap atau potret, yang berarti bahwa   rasio aspek layar lebar atau tinggi, masing-masing. Waspadalah   bahwa tidak hanya perangkat yang berbeda beroperasi dalam orientasi yang berbeda   secara default, tetapi orientasi dapat berubah saat runtime saat pengguna   memutar perangkat.

Resolusi:

Jumlah total piksel fisik di layar. Saat menambahkan dukungan untuk banyak layar, aplikasi tidak berfungsi secara langsung   dengan resolusi; aplikasi harus memperhatikan hanya dengan layar   ukuran dan kepadatan, sebagaimana ditentukan oleh ukuran umum dan kepadatan   kelompok.

Kerapatan piksel independen (dp): 

Unit piksel virtual yang harus Anda gunakan saat menentukan tata letak UI, untuk mengekspresikan dimensi tata letak atau   posisi dengan cara yang bebas kerapatan. Kerapatan piksel independen   setara dengan satu piksel fisik pada layar 160 dpi, yang merupakan   kepadatan dasar yang diasumsikan oleh sistem untuk layar kepadatan "sedang".   Saat runtime, sistem secara transparan menangani skala apa pun dari dp   unit, jika perlu, berdasarkan kerapatan layar sebenarnya yang digunakan.   Konversi satuan dp ke piksel layar sederhana: px = dp * (dpi   / 160). Misalnya, pada layar 240 dpi, 1 dp sama dengan 1,5 fisik   piksel. Anda harus selalu menggunakan unit dp saat menentukan   UI aplikasi, untuk memastikan tampilan UI Anda yang tepat di layar   kepadatan yang berbeda.

Referensi: Situs pengembang Android


183
2017-10-17 12:47



dp aku s dip. Gunakan untuk semuanya (margin, padding, dll.).

Menggunakan sp hanya untuk {text-size}.


Untuk mendapatkan ukuran yang sama pada kerapatan layar yang berbeda, Android menerjemahkan unit-unit ini menjadi piksel saat runtime, jadi tidak ada matematika yang rumit untuk Anda lakukan.


Lihat perbedaan antara px, dp dan sp pada ukuran layar yang berbeda.

Enter image description here

Sumber: Pemrograman Android: Panduan Big Nerd Ranch


168
2018-01-10 19:13



Saya telah menghitung rumus di bawah ini untuk membuat konversi dpi untuk dp dan sp enter image description here


118
2017-12-27 09:21