Vraag Wat is het verschil tussen "px", "dip", "dp" en "sp"?


Wat is het verschil tussen Android-maateenheden?

  • px
  • onderdompeling
  • dp
  • sp

5152
2018-01-08 03:23


oorsprong


antwoorden:


Van de Android Developer Documentation:

  1. px
    pixels - komt overeen met werkelijke pixels op het scherm.

  2. in
    Inches - op basis van de fysieke grootte van het scherm.
      1 Inch = 2,54 centimeter

  3. mm
    millimeters - op basis van de fysieke grootte van het scherm.

  4. pt
    punten - 1/72 van een inch gebaseerd op de fysieke grootte van het scherm.

  5. dp of onderdompeling
    DichtheidOnafhankelijke pixels - een abstracte eenheid die is gebaseerd op de fysieke dichtheid van het scherm. Deze eenheden hebben betrekking op een 160       dpi-scherm, dus één dp is één pixel op een scherm van 160 dpi. De verhouding van       dp-naar-pixel zal veranderen met de schermdichtheid, maar niet noodzakelijk       in directe verhouding. Opmerking: de compiler accepteert zowel "dip" als       "dp", hoewel "dp" meer consistent is met "sp".

  6. sp
    SchaalOnafhankelijke pixels - dit lijkt op de Dp-eenheid, maar deze wordt ook geschaald door de voorkeur van de lettertypegrootte van de gebruiker. Het wordt u aanbevolen       gebruik dit toestel bij het specificeren van lettergroottes, zodat ze worden aangepast       voor zowel de schermbelichting als de voorkeur van de gebruiker.

Van Inzicht in Density Independence In 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      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+

Meer info is ook te vinden in de Google Design Documentation.

Om dimensies op echt apparaat te berekenen deze app kan worden gebruikt.


5187
2018-02-25 12:56



Vrijwel alles hieromtrent en hoe je de beste ondersteuning kunt krijgen voor meerdere schermen met verschillende afmetingen en dichtheden is hier zeer goed gedocumenteerd:

Scherm grootte
  De werkelijke fysieke grootte, gemeten als de diagonaal van het scherm.   Voor de eenvoud groepeert Android alle werkelijke schermformaten in vier   algemene maten: klein, normaal, groot en extra groot.

Schermdichtheid
    Het aantal pixels in een fysiek gebied van de   scherm; meestal aangeduid als dpi (dots per inch). Bijvoorbeeld a   "lage" dichtheidsscherm heeft minder pixels binnen een bepaald fysiek gebied,   vergeleken met een "normaal" of "hoog" dichtheidsscherm. Voor de eenvoud,   Android groepeert alle actuele schermdichtheden in zes gegeneraliseerde   dichtheden: laag, gemiddeld, hoog, extra hoog, extra-extra hoog, en   extra-extra-extra-hoog.

oriëntering
De oriëntatie van het scherm vanaf het punt van de gebruiker van   uitzicht. Dit is landschap of portret, wat betekent dat het scherm is   beeldverhouding is ofwel breed ofwel hoog. Houd er rekening mee dat niet   alleen werken verschillende apparaten in verschillende oriëntaties   standaard, maar de richting kan veranderen tijdens runtime wanneer de gebruiker   roteert het apparaat.

Resolutie
 Het totale aantal fysieke pixels aan   een scherm. Bij het toevoegen van ondersteuning voor meerdere schermen, doen toepassingen dat wel   niet direct werken met resolutie; toepassingen moeten bezorgd zijn   alleen met schermgrootte en dichtheid, zoals gespecificeerd door het gegeneraliseerde   grootte en dichtheid groepen.

Density-independent pixel (dp)
 Een virtueel   pixeleenheid die u moet gebruiken bij het definiëren van de UI-lay-out, om uit te drukken   lay-outafmetingen of positie op een dichtheidsonafhankelijke manier.   De dichtheid-onafhankelijke pixel komt overeen met één fysieke pixel op een 160   dpi-scherm, wat de basislijndichtheid is die door het systeem wordt aangenomen voor a   "gemiddelde" dichtheid scherm. Tijdens runtime verwerkt het systeem transparant   elke schaal van de dp-eenheden, indien nodig, op basis van de werkelijke dichtheid   van het scherm dat wordt gebruikt. De conversie van dp-eenheden naar schermpixels is   eenvoudig:    px = dp * (dpi / 160).   Bijvoorbeeld op een scherm van 240 dpi, 1 dp   is gelijk aan 1,5 fysieke pixels. Gebruik altijd dp-eenheden wanneer   de gebruikersinterface van uw toepassing definiëren om ervoor te zorgen dat uw gebruikersinterface correct wordt weergegeven   schermen met verschillende dichtheden.

Als u serieus bent over het ontwikkelen van een Android-app voor meer dan één type apparaat, moet u het ontwikkeldocument voor schermen ten minste eenmaal hebben gelezen. Daarnaast is het altijd goed om te weten hoeveel actieve apparaten een bepaalde schermconfiguratie hebben.


606
2017-08-02 14:15



Ik zal meer uitleggen over hoe Dp precies naar px converteert:

  • Als op een mdpi-apparaat wordt uitgevoerd, 150 x 150 px afbeelding zal duren 150 * 150 dp van schermruimte.
  • Als u op een hdpi-apparaat werkt, 150 x 150 px afbeelding zal duren 100 * 100 dp van schermruimte.
  • Als u op een xhdpi-apparaat werkt, 150x150 px afbeelding zal duren 75 * 75 dp van schermruimte.

Andersom: zeg dat je een afbeelding aan je applicatie wilt toevoegen en je hebt deze nodig om een ​​afbeelding te vullen 100 * 100 dp controle. U moet afbeeldingen met een ander formaat maken voor de ondersteunde schermformaten:

  • 100 * 100 px afbeelding voor mdpi
  • 150 * 150 px afbeelding voor hdpi
  • 200 * 200 px afbeelding voor xhdpi

280
2017-10-30 09:43



px pixels - punt per schaal komt overeen met werkelijke pixels op het scherm.

in Inches - op basis van de fysieke grootte van het scherm.

mm millimeters - op basis van de fysieke grootte van het scherm.

pt punten - 1/72 van een inch gebaseerd op de fysieke grootte van het scherm.

dp Dichtheid - onafhankelijke Pixels - een abstracte eenheid die is gebaseerd op de fysieke dichtheid van het scherm. Deze eenheden zijn relatief ten opzichte van een scherm van 160 dpi, dus één dp is één pixel op een scherm van 160 dpi. De verhouding van dp tot pixel verandert met de schermdensiteit,  maar niet noodzakelijk in directe verhouding.  Opmerking: de compiler accepteert beide dip en dp, hoewel dp is meer consistent met sp.

sp -Scale-onafhankelijke pixels - dit is als het dp eenheid,  maar het wordt ook geschaald door de voorkeur van de lettertypegrootte van de gebruiker. Het wordt aanbevolen om dit toestel te gebruiken bij het specificeren van lettergroottes,  dus ze worden aangepast voor zowel de schermdensiteit als de voorkeur van de gebruiker.

Neem het voorbeeld van twee schermen van dezelfde grootte, maar er is een schermdensiteit van 160 dpi (dots per inch, d.w.z. pixels per inch) en de andere is 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



Bovendien moet u een goed begrip hebben van de volgende concepten:

Scherm grootte:

De werkelijke fysieke grootte, gemeten als de diagonaal van het scherm. Voor de eenvoud groepeert Android alle werkelijke schermformaten in   vier algemene maten: klein, normaal, groot en extra groot.

Schermdichtheid: 

Het aantal pixels binnen een fysiek gebied van het scherm; meestal aangeduid als dpi (dots per inch). Bijvoorbeeld a   "lage" dichtheidsscherm heeft minder pixels binnen een bepaald fysiek gebied,   vergeleken met een "normaal" of "hoog" dichtheidsscherm. Voor de eenvoud,   Android groepeert alle werkelijke schermdichtheden in vier gegeneraliseerde   dichtheden: laag, gemiddeld, hoog en extra hoog.

oriëntatie: 

De oriëntatie van het scherm vanuit het gezichtspunt van de gebruiker. Dit is landschap of portret, wat betekent dat het   de beeldverhouding van het scherm is respectievelijk breed of hoog. Let op   dat niet alleen verschillende apparaten in verschillende oriëntaties werken   standaard, maar de richting kan veranderen tijdens runtime wanneer de gebruiker   roteert het apparaat.

Resolutie:

Het totale aantal fysieke pixels op een scherm. Bij het toevoegen van ondersteuning voor meerdere schermen werken applicaties niet rechtstreeks   met resolutie; applicaties moeten alleen betrekking hebben op het scherm   grootte en dichtheid, zoals gespecificeerd door de gegeneraliseerde grootte en dichtheid   groepen.

Densiteitsonafhankelijke pixel (dp): 

Een virtuele pixeleenheid die u moet gebruiken bij het definiëren van de UI-lay-out, om lay-outafmetingen of uit te drukken   positie op een dichtheid-onafhankelijke manier. De dichtheid-onafhankelijke pixel   is gelijk aan één fysieke pixel op een scherm van 160 dpi, dat is de   basislijndensiteit die door het systeem wordt aangenomen voor een scherm met een "gemiddelde" dichtheid.   Tijdens runtime handelt het systeem transparant elke schaal van de dp af   eenheden, indien nodig, op basis van de werkelijke dichtheid van het gebruikte scherm.   De conversie van dp-eenheden naar schermpixels is eenvoudig: px = dp * (dpi   / 160). Op een scherm met 240 dpi is 1 dp gelijk aan 1,5 fysiek   pixels. Je moet altijd Dp-eenheden gebruiken bij het bepalen van je   gebruikersinterface, om ervoor te zorgen dat uw gebruikersinterface op schermen correct wordt weergegeven   verschillende dichtheden.

Referentie: Website voor Android-ontwikkelaars


183
2017-10-17 12:47



dp is dip. Gebruik het voor alles (marge, opvulling, etc.).

Gebruik sp alleen voor {text-size}.


Om dezelfde grootte op verschillende schermdichtheden te krijgen, vertaalt Android deze eenheden tijdens runtime in pixels, dus u hoeft geen lastige wiskunde te maken.


Zie het verschil tussen px, dp en sp op verschillende schermformaten.

Enter image description here

Bron: Android-programmering: de Big Nerd Ranch gids


168
2018-01-10 19:13



Ik heb de onderstaande formule berekend om de conversies te maken dpi naar dp en sp enter image description here


118
2017-12-27 09:21



Definities

px of punt is a pixel op het fysieke scherm.

dpi zijn pixels per inch op het fysieke scherm en vertegenwoordigen de dichtheid van het scherm.

Android geeft aliasnamen voor verschillende dichtheden

  • ldpi (laag) ~ 120dpi
  • mdpi (gemiddeld) ~ 160dpi
  • hdpi (hoog) ~ 240dpi
    • de meeste apparaten in 2015 zijn hier
  • xhdpi (extra hoog) ~ 320dpi
    • Apple iPhone 4/5/6, Nexus 4
  • xxhdpi (extra-extra-hoog) ~ 480dpi
    • Nexus 5
  • xxxhdpi (extra-extra-extrahoog) ~ 640 dpi

onderdompeling of dp zijn dichtheid-onafhankelijke pixelsdat wil zeggen dat ze overeenkomen met meer of minder pixels afhankelijk van de fysieke dichtheid.

  • 1dp = 1px op mdpi

enter image description here

sp of nippen is een schaalonafhankelijke pixel. Ze worden geschaald wanneer het Grote tekst optie is ingeschakeld instellingen > Toegankelijkheid

  • 1sp = 1 dp
  • 1sp = 1,2dp met toegankelijkheid Grote tekst

Wat te gebruiken?

Gebruik sp voor tekstgrootte.

Gebruik dp voor al het andere.


106
2017-09-20 21:34



Bron 1

Bron 2

Bron 3: (gegevens van bron 3 worden hieronder gegeven)

Dit zijn dimensiewaarden die zijn gedefinieerd in XML. Een dimensie is opgegeven   met een nummer gevolgd door een maateenheid. Bijvoorbeeld: 10px, 2in,   5SP. De volgende maateenheden worden door Android ondersteund:

dp

Dichtheid-onafhankelijke pixels - Een abstracte eenheid die is gebaseerd op de   fysieke dichtheid van het scherm. Deze eenheden hebben een relatieve resolutie van 160 dpi   (dots per inch) scherm, waarop 1dp ongeveer gelijk is aan 1px. Wanneer   op een scherm met een hogere dichtheid, het aantal pixels dat wordt gebruikt om te tekenen   1 dp wordt opgeschaald met een factor die geschikt is voor de dpi van het scherm.   Evenzo, wanneer op een scherm met lagere dichtheid, het aantal gebruikte pixels   voor 1dp wordt verkleind. De verhouding van dp tot pixel verandert met de   schermdichtheid, maar niet noodzakelijkerwijs in directe verhouding. Dp gebruiken   eenheden (in plaats van px-eenheden) is een eenvoudige oplossing om het beeld te maken   afmetingen in uw lay-out worden op de juiste manier aangepast voor ander scherm   dichtheden. Met andere woorden, het biedt consistentie voor de echte wereld   formaten van uw UI-elementen op verschillende apparaten.

sp

Schaalonafhankelijke pixels - dit lijkt op de Dp-eenheid, maar dat is het ook   geschaald door de voorkeur van de lettertypegrootte van de gebruiker. Het is aan te raden om te gebruiken   deze eenheid bij het opgeven van tekengroottes, zodat deze worden aangepast voor   zowel de schermdensiteit als de voorkeur van de gebruiker.

pt

Punten - 1/72 van een inch gebaseerd op de fysieke grootte van het scherm.

px

Pixels - Komt overeen met werkelijke pixels op het scherm. Deze eenheid van   maatregel wordt niet aanbevolen omdat de werkelijke weergave kan variëren   op verschillende apparaten; elk apparaat kan een ander aantal pixels per hebben   inch en mogelijk meer of minder totale pixels beschikbaar op het scherm.

mm

Millimeter - op basis van de fysieke grootte van het scherm.

in

Inch - gebaseerd op de fysieke grootte van het scherm.

Notitie: Een dimensie is een eenvoudige bron waarnaar wordt verwezen met behulp van de waarde die wordt opgegeven in het kenmerk name (niet de naam van het XML-bestand). Als zodanig kunt u dimensiemiddelen combineren met andere eenvoudige bronnen in het ene XML-bestand, onder één element.


104
2018-04-02 06:35