Koks skirtumas tarp „px“, „dip“, „dp“ ir „sp“?

Koks skirtumas tarp „Android“ įrenginių?

  • PV
  • rudenį
  • dp
  • sp
5313
08 янв. „capecrawler“ yra nustatytas sausio 08 2010-01-08 06:23 '10, 6:23, 2010-01-08 06:23
@ 37 atsakymai
  • 1
  • 2

Iš „ Android“ kūrėjo dokumentacijos :

  1. PV
    Pikseliai - atitinka faktinius pikselius ekrane.

  2. į
    Colių - remiantis fiziniu ekrano dydžiu.
    1 colio = 2,54 cm

  3. mm
    Milimetrai - priklausomai nuo fizinio ekrano dydžio.

  4. R
    Taškai yra 1/72 colio, priklausomai nuo fizinio ekrano dydžio.

  5. dp arba dip
    Tankio nepriklausomi pikseliai yra abstraktus blokas, pagrįstas fiziniu ekrano tankiu. Šie įrenginiai priklauso ekranui, kurio skiriamoji geba yra 160 dpi, todėl vienas pikselis yra vienas pikselis ekrane, kurio skiriamoji geba yra 160 dpi. „Dp-to-pixel“ santykis priklausys nuo ekrano tankio, bet nebūtinai tiesiogiai proporcingai. Pastaba Kompiliatorius priima „dip“ ir „dp“, nors „dp“ yra labiau panašus į „sp“.

  6. sp
    Skalės nepriklausomi pikseliai - tai atrodo kaip „dp“ blokas, tačiau jis taip pat matuojamas pagal naudotojo šrifto dydį. Rekomenduojama naudoti šį įrenginį nustatant šrifto dydžius, todėl jie bus pritaikyti tiek ekrano tankiui, tiek naudotojo nuostatoms.

Nuo supratimo apie tankio nepriklausomybę „Android“ :

 +---------+-------------+---------------+-------------+--------------------+ | 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 | | | | +---------+-------------+---------------+-------------+--------------------+ 

Daugiau informacijos rasite „ Google“ dizaino dokumentacijoje .

5342
08 янв. Atsakymas, kurį pateikė Alex Volovoy Jan 08 2010-01-08 07:41 '10, 7:41 val. 2010-01-08 07:41

Praktiškai viskas apie tai ir kaip pasiekti geriausią paramą įvairiems skirtingo dydžio ir tankumo ekranams yra labai gerai dokumentuota čia:

Ekrano dydis
Faktinis fizinis dydis, matuojamas kaip ekrano įstrižainė. Dėl paprastumo „Android“ visus faktinius ekrano dydžius suskirsto į keturis bendruosius dydžius: mažus, reguliarius, didelius ir labai didelius.

Ekrano tankis
Pikselių skaičius ekrano fizinėje srityje; paprastai vadinama dpi (tašku colyje). Pavyzdžiui, mažo tankio ekrane tam tikroje fizinėje srityje yra mažiau taškų nei ekranas, turintis „normalaus“ arba „didelio“ tankio vaizdą. Dėl paprastumo „Android“ visus faktinius ekrano tankius suskirsto į šešis bendruosius tankius: žemą, vidutinį, aukštą, itin aukštą, ypač ypač aukštą ir ypač ekstra-ypač didelį.

orientacija
Ekrano orientacija naudotojo požiūriu. Tai arba kraštovaizdis, arba portretas, o tai reiškia, kad ekrano santykis yra atitinkamai platus arba aukštas. Atminkite, kad pagal nutylėjimą skirtingi prietaisai veikia ne tik skirtingose ​​orientacijose, bet ir veikimo metu, kai vartotojas paverčia prietaisą, orientacija gali pasikeisti.

rezoliucija
Bendras fizinių pikselių skaičius ekrane. Pridedant palaikymą keliems ekranams, programos tiesiogiai neveikia su rezoliucija; paraiškos turėtų būti susijusios tik su ekrano dydžiu ir tankiu, nustatytomis pagal apibendrintas matmenų ir tankio grupes.

Tankio nepriklausomas pikselis (dp)
Virtualus vaizdo elementų blokas, naudojamas naudotojo sąsajos išdėstymui apibrėžti, kad būtų išreikštas išdėstymo dydis ar padėtis, nepriklausomai nuo tankio. Tankio nepriklausomas pikselis yra lygus vienam fiziniam pikseliui ekrane, kurio skiriamoji geba yra 160 dpi, o tai yra bazinis tankis, kurį sistema taiko vidutinio tankio ekranui. Veikimo metu sistema skaidriai apdoroja bet kokią „dp“ blokų skalę, atsižvelgiant į faktinį naudojamo ekrano tankį. „Dp“ blokų konvertavimas į ekrano pikselius yra paprastas: px = dp * (dpi/160) . Pavyzdžiui, ekrane, kurio skiriamoji geba yra 240 dpi, 1 dp yra lygus 1,5 fizinio vaizdo taško. Nustatydami programos vartotojo sąsają, visada turėtumėte naudoti „dp“ modulius, kad užtikrintumėte, jog sąsaja yra teisingai rodoma ekranuose su skirtingais tankiais.

border=0

Jei rimtai ketinate kurti „Android“ programą daugiau nei vienai prietaiso rūšiai, turėtumėte perskaityti ekranus, kurie bent vieną kartą palaiko dizaino dokumentą. Be to, visada gerai žinoti faktinį aktyvių įrenginių, turinčių konkrečią ekrano konfigūraciją, skaičių.

630
25 февр. Atsakymas pateikiamas Bruiser 25 vasario mėn. 2011-02-25 15:56 '11, 15:56, 2011-02-25 15:56

Papasakosiu jums daugiau apie tai, kaip „dp“ į „px“ konversiją:

  • Vykdant „mdpi“ įrenginį, 150 x 150 px bus 150 * 150 dp ekranas.
  • Paleidus „hdpi“ įrenginyje, 150 x 150 px atvaizdas užtruks 100 * 100 dp 150 x 150 px ekrano erdvės.
  • Jei dirbate su xhdpi įrenginiu, 150x150 px vaizdas užtruks 75 * 75 dp ekrano.

Kitas būdas: tarkime, kad norite pridėti vaizdą prie savo programos, ir jums reikia užpildyti 100 * 100 dp valdiklį. Jums reikės sukurti skirtingo dydžio vaizdus palaikomiems ekrano dydžiams:

  • 100 * 100 px mdpi
  • 150 * 150 px hdpi
  • 200 * 200 px xhdpi
303
02 авг. atsakymas pateikiamas devmiles.com 02 rug . 2012-08-02 17:15 '12 at 17:15 pm 2012-08-02 17:15

px pixels - taškas taške atitinka faktinius pikselius ekrane.

coliais pagal fizinį ekrano dydį.

mm mm - pagal fizinį ekrano dydį.

taškai - 1/72 colio, priklausomai nuo fizinio ekrano dydžio.

dp tankis - nepriklausomi pikseliai - abstraktus blokas, pagrįstas fiziniu ekrano tankiu. Šie vienetai yra susiję su 160 dpi ekranu, todėl vienas dp vienas pikselis per 160 dpi ekraną. „Dp-to-pixel“ santykis priklausys nuo ekrano tankio, bet nebūtinai tiesiogiai proporcingai. Pastaba Kompiliatorius priima tiek dip tiek dp , nors dp labiau atitinka sp .

sp -Scale-független Pikseliai - tai atrodo kaip „ dp blokas, bet jis taip pat matuojamas pagal naudotojo šrifto dydį. Rekomenduojama naudoti šį įrenginį nustatant šrifto dydžius, todėl jie bus pritaikyti tiek ekrano tankiui, tiek naudotojo nuostatoms.

Paimkite du tokio paties dydžio ekranus, tačiau ekrano tankis yra 160 dpi (taškai colyje, t. Y. Pikseliai colyje), o kitas - 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 
246
30 окт. atsakymas, kurį pateikė Amit Gajera, spalio 30 d 2012-10-30 12:43 '12 12:43 val. 2012-10-30 12:43

Be to, turėtumėte aiškiai suprasti šias sąvokas:

Ekrano dydis:

Faktinis fizinis dydis, matuojamas kaip ekrano įstrižainė. Dėl paprastumo „Android“ visus faktinius ekrano dydžius suskirsto į keturis bendruosius dydžius: mažus, normalius, didelius ir labai didelius.

Ekrano tankis:

Pikselių skaičius ekrano fizinėje srityje; paprastai vadinama dpi (tašku colyje). Pavyzdžiui, mažo tankio ekrane tam tikroje fizinėje srityje yra mažiau taškų nei ekranas, turintis „normalaus“ arba „didelio“ tankio vaizdą. Dėl paprastumo „Android“ visus faktinius ekrano tankius grupuoja į keturis bendruosius tankius: žemą, vidutinį, aukštą ir labai aukštą.

Orientacija:

Ekrano orientacija naudotojo požiūriu. Tai arba kraštovaizdis, arba portretas, o tai reiškia, kad ekrano santykis yra atitinkamai platus arba aukštas. Atminkite, kad pagal nutylėjimą skirtingi prietaisai veikia ne tik skirtingose ​​orientacijose, bet ir veikimo metu, kai vartotojas paverčia prietaisą, orientacija gali pasikeisti.

Rezoliucija:

Bendras fizinių pikselių skaičius ekrane. Pridedant palaikymą keliems ekranams, programos tiesiogiai neveikia su rezoliucija; paraiškos turėtų būti susijusios tik su ekrano dydžiu ir tankiu, nustatytomis pagal apibendrintas matmenų ir tankio grupes.

Tankio nepriklausomas pikselis (dp):

Virtualus vaizdo elementų blokas, naudojamas naudotojo sąsajos išdėstymui apibrėžti, kad būtų išreikštas išdėstymo dydis ar padėtis, nepriklausomai nuo tankio. Tankio nepriklausomas pikselis yra lygus vienam fiziniam pikseliui ekrane, kurio skiriamoji geba yra 160 dpi, o tai yra bazinis tankis, kurį sistema taiko vidutinio tankio ekranui. Veikimo metu sistema skaidriai apdoroja bet kokią „dp“ blokų skalę, atsižvelgiant į faktinį naudojamo ekrano tankį. „Dp“ blokų konvertavimas į ekrano pikselius yra paprastas: px = dp * (dpi / 160). Pavyzdžiui, ekrane, kurio skiriamoji geba yra 240 dpi, 1 dp yra lygus 1,5 fizinio vaizdo taško. Nustatydami programos vartotojo sąsają, visada turėtumėte naudoti „dp“ modulius, kad užtikrintumėte, jog sąsaja yra teisingai rodoma ekranuose su skirtingais tankiais.

Nuoroda: „Android“ kūrėjo svetainė

193
27 июля '13 в 0:19 2013-07-27 00:19 atsakymą pateikė Sazzad Hissain Khan, liepos 27 d. 13, 0:19 2013-07-27 00:19

dp dip . Naudokite jį viską (paraštę, įtraukas ir pan.).

Naudokite sp tik {text-size}.


Norėdami gauti tokį patį dydį skirtingais ekrano tankiais, „Android“ šiuos vienetus perkelia į taškus veikimo metu, taigi jums nėra sudėtingos matematikos.


Žr. dp tarp px , dp ir sp skirtinguose ekrano dydžiuose.

2019

178
17 окт. atsakymas, kurį pateikė Mina Gabriel, spalio 17 d 2014-10-17 15:47 '14 at 15:47 2014-10-17 15:47

Apskaičiuojau žemiau pateiktą formulę, kad dpi konversijos būtų lygios dp ir sp 2019

30 окт. Chaitanos atsakymas spalio 30 d 2013-10-30 19:10 '13, 19:10, 2013-10-30 19:10

Apibrėžimai

px arba taškas yra pikselis fiziniame ekrane.

Dpi yra pikselių colyje fiziniame ekrane ir rodo ekrano tankį.

„Android“ suteikia pseudonimus įvairiems tankiams.

  • lppi (mažas) ~ 120 dpi
  • mdpi (vidutinė) ~ 160 dpi
  • hdpi (aukštas) ~ 240 dpi
    • 2015 m. dauguma įrenginių yra čia
  • xhdpi (ypač aukštas) ~ 320dpi
    • Apple iPhone 4/5/6, Nexus 4
  • xxhdpi (extra-extra-high) ~ 480 dpi
    • Nexus 5
  • xxxhdpi (ekstra-extra-extra-high) ~ 640dpi

Dip arba dp yra pikseliai, kurių tankis yra nepakankamas, t. y. jie atitinka daugiau ar mažiau pikselių, priklausomai nuo fizinio tankio.

  • 1dp = 1px ant mdpi

2019

1 šaltinis

2 šaltinis

3 šaltinis : (3 šaltinio duomenys yra žemiau)

Tai yra dimensijos reikšmės, apibrėžtos XML. Matmuo nurodomas skaičiumi, po kurio matuojamas matavimo vienetas. Pavyzdžiui: 10px, 2in, 5sp. „Android“ palaiko šiuos vienetus:

dp

Nepriklausomi tankiai - abstraktus blokas, pagrįstas fiziniu ekrano tankiu. Šie vienetai nurodo 160 dpi ekraną (taškus colyje), kur 1dp yra maždaug lygus 1px. Dirbdami su didesniu tankio ekranu, pikselių skaičius, naudojamas 1dp didinimui, padidinamas ekranui tinkamu koeficientu. Panašiai, esant mažesnio tankio ekranui, 1 dp pikselių skaičius sumažėja. „Dp-to-pixel“ santykis priklausys nuo ekrano tankio, bet nebūtinai tiesiogiai proporcingai. Naudojant „dp“ blokus (vietoj pikselių vienetų), tai yra paprastas sprendimas, kaip teisingai išdėstyti pateiktį įvairiuose ekrano tankiuose. Kitaip tariant, jis užtikrina jūsų vartotojo sąsajos dydžio suderinamumą realiu laiku per įrenginius.

sp

Scalable pixels - tai atrodo kaip „dp“ blokas, tačiau jis taip pat vertinamas pagal naudotojo šrifto dydį. Rekomenduojama naudoti šį įrenginį nustatant šrifto dydžius, todėl jie bus pritaikyti tiek ekrano tankiui, tiek naudotojo nuostatoms.

R

Taškai yra 1/72 colio, priklausomai nuo fizinio ekrano dydžio.

PV

Pikseliai - atitinka faktinius pikselius ekrane. Šis įrenginys nerekomenduojamas, nes faktinis vaizdas gali skirtis nuo įrenginio; Kiekvienas įrenginys gali turėti skirtingą pikselių skaičių colyje ir ekrane gali būti daugiau ar mažiau viso taškų.

mm

Milimetrai - remiantis fiziniu ekrano dydžiu.

į

Colių - remiantis fiziniu ekrano dydžiu.

Pastaba Matmuo yra paprastas šaltinis, nurodomas naudojant vardo atribute nurodytą reikšmę (o ne XML failo pavadinimą). Tokiu būdu viename XML faile galite susieti matavimo išteklius su kitais paprastais ištekliais vienu elementu.

114
27 дек. atsakymas pateikiamas sms247 27 dec. 2013-12-27 12:21 '13, 12:21, 2013-12-27 12:21

Iš esmės, vienintelis laikas, kai taikomas „px“, yra lygus vienam pikseliui, ir jei norite, kad ekrane būtų lygiai vienas pikselis, kaip ir dalintojo atveju:

> 160 dpi galite gauti 2-3 pikselius

> 120 dpi yra suapvalinta iki 0.

105
21 сент. Joe Plante atsakymas 21 sep. 2012-09-21 00:34 '12 0:34 2012-09-21 00:34

taškų

Pikseliai - atitinka faktinius pikselius ekrane.

dp arba dip

Nepriklausomi vaizdo elementai yra abstraktus blokas, pagrįstas fiziniu ekrano tankiu. Šie vienetai nurodo ekraną, kurio skiriamoji geba yra 160 dpi, todėl vienas dp yra vienas pikselis ekrane, kurio skiriamoji geba yra 160 dpi.

Naudojant dp:

Tankis nepriklausomumas - jūsų taikymas pasiekia „tankio nepriklausomumą“, kai išsaugo naudotojo sąsajos elementų fizinį dydį (nuo vartotojo požiūrio), kai rodomas skirtingo tankio ekranuose. (t. y.) Įvairių tipų ekranuose vaizdas turėtų būti toks pat (ne padidintas ar suspaustas).

sp

Scalable pixels - tai atrodo kaip „dp“ blokas, tačiau jis taip pat vertinamas pagal naudotojo šrifto dydį.

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

87
02 апр. atsakymą pateikė Nirav Ranpara 02 Bal 2013-04-02 09:35 '13, 9:35, 2013-04-02 09:35

Kur naudoti kaip ryšį tarp px ir dp?

Nepriklausomo vaizdo tankis (dp)

Virtuali pikselių dėžutė, kuri turėtų būti naudojama apibrėžiant vartotojo sąsajos išdėstymą, kad būtų išreikštas išdėstymo dydis ar padėtis, nepriklausomai nuo tankio. Kaip aprašyta pirmiau, pikselis, kuris nepriklauso nuo tankio, yra lygus vienam fiziniam pikseliui ekrane, kurio skiriamoji geba yra 160 dpi, o tai yra bazinis tankis, kurį sistema taiko vidutinio tankio ekranui. Veikimo metu sistema skaidriai apdoroja bet kokią „dp“ blokų skalę, atsižvelgiant į faktinį naudojamo ekrano tankį. „Dp“ blokų konvertavimas į ekrano vaizdo elementus yra paprastas:

px = dp * (dpi / 160).

Pavyzdžiui, ekrane, kurio skiriamoji geba yra 240 dpi, 1 dp yra lygus 1,5 fizinio vaizdo taško. Nustatydami programos vartotojo sąsają, visada turėtumėte naudoti „dp“ modulius, kad naudotojo sąsaja būtų teisingai rodoma ekranuose su skirtingais tankiais.

Svarbu suprasti „dp“ pikselį ir atvirkščiai (ypač norint suteikti tikslią „dp“ vertę kūrybinei komandai)

 dp = px * 160 / dpi MDPI = 160 dpi || Therefore, on MDPI 1 px = 1 dp For example, if you want to convert 20 pixel to dp, use the above formula, dp = 20 * 160 / 160 = 20. So, 20 pixel = 20 dp. HDPI = 240 dpi - So, on HDPI 1.5 px = 1 dp XHDPI = 320 dpi - So, on XHDPI 2 px = 1 dp XXHDPI = 480 dpi - So, on XXHDPI 3 px = 1 dp For example, let us consider Nexus 4. If 24 pixels to be converted to dp and if it is a Nexus 4 screen, developers can convert it to dp easily by the following calculation : dp = 24 * 160 / 320 = 12 dp Screen dimension: 768 x 1280 pixel resolution (320 ppi or 320dpi) Optional (screen size): 4.7" diagonal 
  • Iš kūrybinės komandos bandykite gauti visas pikselių reikšmes lygiais skaičiais. Priešingu atveju, nuostolių tikslumas bus nustatytas padauginus iš 0,5.

PV

Tai paaiškinta pirmiau. Pabandykite išvengti išdėstymo failų. Tačiau yra keletas atvejų, kai reikalinga px. pavyzdžiui, „ListView“ separatorius. čia yra geriau, jei norite pateikti vieno pikselio liniją kaip visų rezoliucijų separatorių ekrane.

sp

Naudokite sp šrifto dydžiui. Tada tik programos viduje esantis šriftas pasikeis, kai bus keičiamas įrenginio šrifto dydis (tai yra „Rodymas → Įtaisai šriftu“). Jei norite išlaikyti statinio dydžio šriftą programoje, galite nurodyti šrifto dydį dp. Tokiu atveju jis niekada nepasikeis. Kūrėjai gali gauti šį reikalavimą kai kuriems konkretiems ekranams, todėl kūrėjai gali naudoti dp vietoj sp. Visais kitais atvejais rekomenduojama sp.

86
09 июля '14 в 8:46 2014-07-09 08:46 atsakymą pateikė Arunjyothis, liepos 9 d. 14, 8:46 2014-07-09 08:46

Toliau pateiktame paveikslėlyje galite matyti skirtumą tarp px ir dp , taip pat galite pastebėti, kad px ir dp negali garantuoti tų pačių fizinių matmenų skirtinguose ekranuose.

2019

78
13 февр. Atsakymas pateikiamas Zephyr 13 vasario mėn. 2015-02-13 21:50 '15, 9:50 val. 2015-02-13 21:50

Viskas, kas susijusi su teksto dydžiu ir išvaizda, turėtų naudoti sp arba pt . Kadangi viskas, kas susijusi su valdiklių dydžiu, maketais ir tt, turėtų būti naudojama su dp .

Savo vietose galite naudoti ir dp ir dip .

70
09 авг. atsakymą pateikė Atish Agrawal 09 rug . 2013-08-09 16:38 '13, 16:38, 2013-08-09 16:38

Norėčiau naudoti tik dp.