android in pixel - Was ist der Unterschied zwischen "px", "dip", "dp" und "sp"?





15 Answers

So ziemlich alles darüber und wie man mehrere Bildschirme mit unterschiedlichen Größen und Dichten optimal unterstützt, ist hier sehr gut dokumentiert:

Bildschirmgröße
Tatsächliche physische Größe, gemessen als Diagonale des Bildschirms. Zur Vereinfachung gruppiert Android alle tatsächlichen Bildschirmgrößen in vier allgemeinen Größen: klein, normal, groß und extra groß.

Bildschirmdichte
Die Anzahl der Pixel in einem physischen Bereich des Bildschirms. normalerweise als dpi (Dots per Inch) bezeichnet. Beispielsweise hat ein Bildschirm mit "niedriger Dichte" weniger Pixel innerhalb eines gegebenen physikalischen Bereichs im Vergleich zu einem Bildschirm mit "normaler" oder "hoher Dichte". Zur Vereinfachung gruppiert Android alle tatsächlichen Bildschirmdichten in sechs allgemeine Dichten: niedrig, mittel, hoch, extra hoch, extra extra hoch und extra extra extra hoch.

Orientierung
Die Ausrichtung des Bildschirms aus Sicht des Benutzers. Dies ist entweder Querformat oder Hochformat, dh das Seitenverhältnis des Bildschirms ist entweder groß oder groß. Beachten Sie, dass verschiedene Geräte nicht nur standardmäßig in unterschiedlichen Ausrichtungen arbeiten. Die Ausrichtung kann sich zur Laufzeit ändern, wenn der Benutzer das Gerät dreht.

Auflösung
Die Gesamtzahl der physischen Pixel auf einem Bildschirm. Wenn Sie Unterstützung für mehrere Bildschirme hinzufügen, arbeiten Anwendungen nicht direkt mit der Auflösung. Anwendungen sollten sich nur mit der Bildschirmgröße und -dichte befassen, wie in den allgemeinen Größen- und Dichtegruppen angegeben.

Dichteunabhängiges Pixel (dp)
Eine virtuelle Pixeleinheit, die Sie beim Definieren des UI-Layouts verwenden sollten, um Layoutdimensionen oder -position auf dichtenunabhängige Weise auszudrücken. Das dichteunabhängige Pixel entspricht einem physischen Pixel auf einem Bildschirm mit 160 dpi. Hierbei handelt es sich um die Basisliniendichte, die das System für einen Bildschirm mit "mittlerer" Dichte annimmt. Zur Laufzeit behandelt das System die Skalierung der dp-Einheiten je nach Bedarf auf der Grundlage der tatsächlichen Dichte des verwendeten Bildschirms transparent. Die Umwandlung von dp-Einheiten in Bildschirmpixel ist einfach: px = dp * (dpi / 160) . Auf einem Bildschirm mit 240 dpi entspricht 1 dp beispielsweise 1,5 physikalischen Pixeln. Sie sollten immer dp units verwenden, wenn Sie die Benutzeroberfläche Ihrer Anwendung definieren, um sicherzustellen, dass Ihre Benutzeroberfläche auf Bildschirmen mit unterschiedlichen Dichten angezeigt wird.

Wenn Sie die Entwicklung einer Android-App für mehrere Gerätetypen ernst meinen, sollten Sie das Entwicklungsdokument der Bildschirme mindestens einmal gelesen haben. Darüber hinaus ist es immer gut, die tatsächliche Anzahl der aktiven Geräte zu kennen, die eine bestimmte Bildschirmkonfiguration haben.

density independent pixels

Was ist der Unterschied zwischen Android-Maßeinheiten?

  • px
  • tauchen
  • dp
  • sp



Pixel - Der Punkt pro Skala entspricht den tatsächlichen Pixeln auf dem Bildschirm.

in Zoll - basierend auf der physischen Größe des Bildschirms.

mm Millimeter - basierend auf der physischen Größe des Bildschirms.

pt Punkte - 1/72 Zoll je nach Größe des Bildschirms.

dp Density - Independent Pixels - Eine abstrakte Einheit, die auf der physischen Dichte des Bildschirms basiert. Diese Einheiten sind relativ zu einem Bildschirm mit 160 dpi, also ist ein Pixel ein Pixel auf einem Bildschirm mit 160 dpi. Das Verhältnis von dp zu Pixel ändert sich mit der Bildschirmdichte, jedoch nicht unbedingt in direktem Verhältnis. Anmerkung: Der Compiler akzeptiert sowohl dip als auch dp , obwohl dp mit sp übereinstimmt.

sp Skalenunabhängige Pixel - Dies ist wie bei der dp Einheit, wird jedoch auch durch die Schriftgrößeneinstellung des Benutzers skaliert. Es wird empfohlen, dieses Gerät bei der Angabe von Schriftgrößen zu verwenden, damit diese sowohl der Bildschirmdichte als auch den Vorlieben des Benutzers angepasst werden.

Nehmen Sie zum Beispiel zwei Bildschirme, die die gleiche Größe haben, einer jedoch eine Bildschirmdichte von 160 dpi (Punkte pro Zoll, dh Pixel pro Zoll) und der andere Bildschirm ist 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



dp ist dip . Verwenden Sie es für alles (Rand, Polsterung usw.).

Verwenden Sie sp für {Textgröße}.

Um bei unterschiedlichen Bildschirmdichten dieselbe Größe zu erhalten, übersetzt Android diese Einheiten zur Laufzeit in Pixel, sodass Sie keine komplizierten Berechnungen durchführen müssen.

Sehen Sie den Unterschied zwischen px , dp und sp auf verschiedenen Bildschirmgrößen.

Quelle: Android-Programmierung: Der Big Nerd Ranch Guide




Definitionen

px oder Punkt ist ein Pixel auf dem physischen Bildschirm.

dpi sind Pixel pro Zoll auf dem physischen Bildschirm und repräsentieren die Dichte der Anzeige.

Android gibt Aliasnamen für mehrere Dichten an

  • ldpi (niedrig) ~ 120 dpi
  • mdpi (mittel) ~ 160 dpi
  • hdpi (hoch) ~ 240 dpi
    • Die meisten Geräte im Jahr 2015 sind hier
  • xhdpi (extra hoch) ~ 320dpi
    • Apple iPhone 4/5/6, Nexus 4
  • xxhdpi (extra extra hoch) ~ 480dpi
    • Nexus 5
  • xxxhdpi (extra extra extra hoch) ~ 640 dpi

dip oder dp sind dichtenabhängige Pixel , dh sie entsprechen je nach physikalischer Dichte mehr oder weniger Pixeln.

  • 1dp = 1px auf mdpi

sp oder sip ist ein von der Skala unabhängiges Pixel . Sie werden skaliert, wenn die Option Großer Text in Einstellungen > Eingabehilfen aktiviert ist

  • 1sp = 1dp
  • 1sp = 1.2dp mit barrierefreiem Text

Was zu benutzen

Verwenden Sie sp für Textgröße.

Verwenden Sie dp für alles andere.




Grundsätzlich gilt für px nur ein Pixel. Wenn Sie genau ein Pixel auf dem Bildschirm haben möchten, wie bei einem Teiler:

Bei> 160 dpi erhalten Sie möglicherweise 2-3 Pixel.

Bei> 120 dpi wird auf 0 gerundet.




Wo und welche Beziehung zwischen px und dp verwenden?

Dichteunabhängiges Pixel (dp)

Eine virtuelle Pixeleinheit, die Sie beim Definieren des UI-Layouts verwenden sollten, um Layoutdimensionen oder -position in einer dichtenunabhängigen Weise anzugeben. Wie oben beschrieben, ist das dichteunabhängige Pixel einem physischen Pixel auf einem Bildschirm mit 160 dpi äquivalent, dh der Basisliniendichte, die das System für einen Bildschirm mit "mittlerer" Dichte annimmt. Zur Laufzeit behandelt das System die Skalierung der dp-Einheiten je nach Bedarf auf der Grundlage der tatsächlichen Dichte des verwendeten Bildschirms transparent. Die Umwandlung von dp-Einheiten in Bildschirmpixel ist einfach:

px = dp * (dpi / 160).

Auf einem Bildschirm mit 240 dpi entspricht 1 dp beispielsweise 1,5 physikalischen Pixeln. Sie sollten immer dp-Einheiten verwenden, wenn Sie die Benutzeroberfläche Ihrer Anwendung definieren, um sicherzustellen, dass Ihre Benutzeroberfläche auf Bildschirmen mit unterschiedlichen Dichten angezeigt wird.

Das Verständnis von Pixel in dp und umgekehrt ist sehr wichtig (insbesondere, um dem Kreativteam genaue dp-Werte zu geben).

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
  • Versuchen Sie, alle Pixelwerte in geraden Zahlen vom Kreativteam zu erhalten. Andernfalls tritt ein Präzisionsverlust auf, wenn mit 0,5 multipliziert wird.

px

Es ist oben erklärt. Versuchen Sie es in Layoutdateien zu vermeiden. Es gibt jedoch Fälle, in denen px erforderlich ist. Beispiel: ListView-Trennlinie. px ist hier besser, um eine Einpixel-Linie als Trennlinie für alle Bildschirmauflösungen anzugeben.

sp

Verwenden Sie sp für Schriftgrößen. Dann ändert sich nur die Schriftart in der Anwendung, während die Größe der Geräteschriftarten geändert wird (d. H. Anzeige -> Schriftarten auf Gerät). Wenn Sie eine Schriftart mit statischer Größe in der App beibehalten möchten, können Sie die Schriftgröße in dp angeben. In einem solchen Fall wird es sich niemals ändern. Entwickler können eine solche Anforderung für bestimmte Bildschirme erhalten. Dafür können Entwickler dp anstelle von sp verwenden. In allen anderen Fällen wird SP empfohlen.




Für alles, was mit der Textgröße und dem Erscheinungsbild zusammenhängt, muss sp oder pt . Mit dp muss jedoch alles verwendet werden, das sich auf die Größe der Steuerelemente, der Layouts usw. dp .

Sie können sowohl dp als auch dip an seinen Stellen verwenden.




sp = maßstabsunabhängiges Pixel

dp = dip = dichteunabhängige Pixel

dpi = Punkte pro Zoll

Wir sollten es vermeiden, sp einzusetzen .

Wir sollten dp verwenden , um mehrere Bildschirme zu unterstützen.

Android unterstützt verschiedene Bildschirmauflösungen

  • ldpi (niedrig) ~ 120 dpi
  • mdpi (mittel) ~ 160 dpi
  • HDpi (hoch) ~ 240 dpi
  • xhdpi (extra hoch) ~ 320 dpi
  • xxhdpi (extra extra hoch) ~ 480 dpi
  • xxxhdpi (extra extra extra hoch) ~ 640 dpi

Ein 120-dp-ldpi-Gerät verfügt über 120 Pixel in einer Größe von 1 Zoll.

Dasselbe gilt für andere Dichten ...

Wir als Software-Entwickler sollten diese Umrechnungsformel verwenden:

Pixel = dp * (Dichte / 160)

Das 240-dpi-Gerät hat also 1 dp = 1 * (240/160) = 3/2 = 1,5 Pixel.

Und ein Gerät mit einer Auflösung von 480 dpi hat 1 dp = 1 * (480/160) = 3 Pixel.

Mit diesem Wissen von 1,5 und 3 Pixeln kann ein Softwareentwickler Layouts für unterschiedliche Dichten erstellen.

So überprüfen Sie die Bildschirmparameter eines Geräts:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

Toast.makeText(
    this,
    "4:" + metrics.heightPixels + "," + metrics.density + ","
    + metrics.densityDpi, Toast.LENGTH_LONG).show();



dpi -

  • Punkte pro Zoll
  • Messung der Pixeldichte des Bildschirms.

px - pixel

  • Für die Zuordnung von Bildschirmpixeln

pt - Punkte

  • Ungefähr 1/72 Zoll in Bezug auf die physikalische Bildschirmgröße.

Zoll - in Bezug auf die physikalische Bildschirmgröße (1 Zoll = 2,54 cm).

mm-Millimeter - in Bezug auf die physikalische Bildschirmgröße.

sp - maßstabsunabhängiges Pixel.

  • Basierend auf der Einstellung der Schriftgröße des Benutzers.
  • Schriftart sollte in 'sp' sein.

Dip -

  • dip == dp
  • Dichte unabhängiges Pixel.
  • Sie variiert je nach Bildschirmdichte.
  • In einem 160-dpi-Bildschirm ist 1 dp = 1 Pixel.
  • Verwenden Sie dp mit Ausnahme der Schriftgröße.

In Standard werden dp und sp verwendet. sp für Schriftgröße und dp für alles andere.

Formel für die Umrechnung von Einheiten:

px = dp * (dpi / 160);

Density Bucket -> Screen Display => 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  



Hier ist die von Android verwendete Formel:

px = dp * (dpi / 160)

Dabei ist dpi eine der folgenden Bildschirmdichten. Eine Liste aller möglichen Dichten finden Sie hier

Sie definiert die Konstanten "DENSITY_ *".

  • ldpi (niedrig) ~ 120 dpi
  • mdpi (mittel) ~ 160 dpi
  • hdpi (hoch) ~ 240 dpi
  • xhdpi (extra hoch) ~ 320dpi
  • xxhdpi (extra extra hoch) ~ 480dpi
  • xxxhdpi (extra extra extra hoch) ~ 640 dpi

Von hier genommen .

Dies führt zu einer großen Verwirrung beim Übersetzen zwischen px und dp, wenn Sie Ihre Bildschirmauflösung kennen.

Nehmen wir an, Sie möchten ein Bild von 60 dp für einen HDPI-Bildschirm. Dann ist die physikalische Pixelgröße von 60 dp:

px = 60 * (240 / 160)



Bitte lesen Sie die Antwort aus dem Community-Wiki. Nachfolgend sind einige Informationen aufgeführt, die zusätzlich zu den obigen Antworten zu beachten sind.

sp = maßstabsunabhängiges Pixel

dp = dichteunabhängige Pixel

dpi = Dichte Pixel

Ich habe die obigen Antworten durchgelesen ... sie nicht genau richtig zu finden. sp für Textgröße, dp für Layoutgrenzen - Standard. Aber sp für Textgröße wird das Layout brechen , wenn nachlässig verwendet in den meisten der Geräte.

sp nimmt die Textgröße des Geräts an, während dp den Standard der Gerätedichte annimmt (niemals an einem Gerät ändern) Angenommen, 100sp Text kann 80% des Bildschirms oder 100% des Bildschirms einnehmen, abhängig von der im Gerät eingestellten Schriftgröße

Sie können sp auch für Layoutgrenzen verwenden, es wird funktionieren :) Keine Standard-App verwendet sp für ganzen Text

Verwenden Sie sp und dp für die Textgröße unter Berücksichtigung von UX.

  • Verwenden Sie kein sp für Text in der Symbolleiste (kann android-Dimens oder dp verwenden)
  • Verwenden Sie kein sp für Text in kleinen, begrenzten Schaltflächen, sehr kleinen Text usw

Einige Benutzer verwenden FONT FONT in ihrem Telefon, um die Lesbarkeit zu verbessern. Wenn Sie einen kleinen, hartcodierten Text eingeben, ist dies ein Problem der UX. Setzen Sie bei Bedarf sp für Text, stellen Sie jedoch sicher, dass das Layout nicht beschädigt wird.

Wenn Sie über eine einzige App verfügen, die alle Dimensionen unterstützt, erhöht das Hinzufügen von xxxhdpi-Assets die App-Größe erheblich. Aber jetzt sind xxxhdpi-Telefone üblich, so dass wir xxxhdpi-Elemente mindestens für Symbole in Seitenleiste, Symbolleiste und Bodenleiste einfügen müssen. Bewegen Sie sich besser zu Vektorbildern, um für alle Bildschirmgrößen eine einheitliche und qualitativ bessere Bilder zu erhalten.




Bildschirmgröße in Android ist in Kategorien gruppiert ldpi, mdpi, hdpi, xhdpi, xxhdpiund xxxhdpi. Die Bildschirmdichte ist die Anzahl der Pixel innerhalb eines Bereichs (wie Zoll) des Bildschirms. Im Allgemeinen wird es in Dots per Inch ( dpi) gemessen .

PX(Pixels):

  • unser übliches Standardpixel, das dem Bildschirmpixel entspricht. pxist für absolute Pixel gedacht. Dies wird verwendet, wenn Sie die Breite oder Höhe in absoluten Pixeln angeben möchten. Nicht empfohlen.

DP/DIP(Density pixels / Density independent pixels):

  • dip == dp. In früheren Android-Versionen wurde Dip verwendet und später geändert dp. Dies ist eine Alternative von px.

  • Im Allgemeinen verwenden wir niemals, pxda es sich um einen absoluten Wert handelt. Wenn Sie pxdie Breite oder Höhe festlegen und diese Anwendung in Geräte mit unterschiedlichen Bildschirmgrößen heruntergeladen wird, wird diese Ansicht nicht entsprechend der Bildschirmgröße des Originals vergrößert.

  • dpwird dringend empfohlen, anstelle von zu verwenden px. Verwenden dpSie diese Option, wenn Sie Breite und Höhe erwähnen möchten, um je nach Bildschirmgröße dynamisch zu wachsen und zu schrumpfen.

  • wenn wir geben dp/dip, Android wird die Pixelgröße auf der Basis von 160 Pixeln Größe Bildschirm automatisch berechnen.

SP(Scale independent pixels):

  • skaliert basierend auf der Einstellung der Schriftgröße des Benutzers. Schriftarten sollten verwendet werden sp.

  • Verwenden Sie, wenn Sie die Schriftgrößen für verschiedene Bildschirmgrößen angeben sp. Dies ist ähnlich wie dp.Verwenden Sie spbesonders für Schriftgrößen, um dynamisch zu vergrößern und zu schrumpfen, basierend auf den Bildschirmgrößen

Android-Dokumentation sagt:

Verwenden Sie bei der Angabe von Abmessungen immer entweder dpoder spEinheiten. A dpist ein dichteunabhängiges Pixel, das der physikalischen Größe eines Pixels bei 160 entspricht dpi. Ein spist die gleiche Basiseinheit, wird jedoch nach der vom Benutzer bevorzugten Textgröße skaliert (es handelt sich um ein von der Skala unabhängiges Pixel). Daher sollten Sie diese Maßeinheit zur Definition der Textgröße verwenden




Der Bildschirm eines Mobiltelefons besteht aus Tausenden von kleinen Punkten, die als Pixel (px) bezeichnet werden . Ein Pixel ist das kleinste Element, aus dem das Bild entsteht. Je mehr Pixel ein Bild oder einen Text erstellt, desto schärfer wird das Bild und der Bildschirm des Smartphones wird leichter lesbar.

Die Bildschirmauflösung wird als Anzahl der Pixel auf dem Bildschirm gemessen. Die Bildschirmauflösung ist eine häufig verwendete Spezifikation beim Kauf eines Geräts, ist jedoch bei der Gestaltung für Android nicht besonders nützlich, da bei der Betrachtung von Bildschirmen in Pixeln die physikalische Größe nicht berücksichtigt wird, was für ein Touchgerät wirklich wichtig ist.

Dichteunabhängige Pixel (dp oder dip) ermöglichen dem Designer das Erstellen von Elementen, die erwartungsgemäß erscheinen, unabhängig von der Auflösung oder Dichte des Zielgeräts.

Ein von der Dichte unabhängiges Pixel (dp oder dip) entspricht einem Pixel bei der Basisliniendichte oder 160 dpi (Dots per Inch).

1 px / 1dp = 160 dpi / 160 dpi

2 px / 1dp = 320 dpi (2x) / 160 dpi

woher,

dpi ist Punkte pro Zoll

Bei 320 dpi entspricht 1 dp also 2 px.

Formel

px / dp = dpi / 160dpi

Dots per Inch (dpi) ist ein Maß für die Schärfe (d. H. Die Dichte der beleuchteten Punkte) auf einem Bildschirm. Die Punkte pro Zoll für eine bestimmte Bildauflösung unterscheiden sich je nach der Gesamtgröße des Bildschirms, da dieselbe Anzahl von Pixeln auf einen anderen Bereich verteilt wird.

Das Arbeiten mit von der Dichte unabhängigen Pixeln hilft uns, mit einer Situation umzugehen, bei der Sie zwei Geräte mit gleicher Pixelauflösung, aber unterschiedlichem Speicherplatz haben. Angenommen, in einem Fall haben ein Tablet und ein Telefon dieselbe Pixelauflösung von 1280 x 800 Pixel (160 dpi) bzw. 800 x 1280 Pixel (320 dpi).

Da ein Tablet eine Basisliniendichte (160 dpi) hat, sind die physischen und dichtenunabhängigen Pixelgrößen gleich (1280 x 800). Das Telefon hingegen hat eine höhere Pixeldichte, dh es hat halb so viele dichtenunabhängige Pixel wie physische Pixel. Ein Telefon hat also 400 x 640 dichtenunabhängige Pixel. Die Verwendung eines dichteunabhängigen Pixels macht es daher einfacher, sich geistig vorzustellen, dass das Tablet viel mehr Platz hat als das Telefon.

Wenn Sie über zwei Geräte mit ähnlicher Bildschirmgröße, aber unterschiedlicher Pixeldichte verfügen, beispielsweise 800 x 1280 Pixel (320 dpi) und das andere 400 x 640 Pixel (160 dpi), müssen wir nicht vollständig definieren unterschiedliche Layouts für diese beiden Geräte, da wir Assets im Hinblick auf die Dichte unabhängiger Pixel messen können, was für beide Geräte gleich ist.

800 x 1280 Pixel (320 dpi) = 400 x 640 dichteunabhängiges Pixel (dp)

400 x 640 Pixel (160 dpi) = 400 x 640 dichteunabhängiges Pixel (dp)

Skalierungsunabhängige Pixel (sp) sind die bevorzugte Einheit für die Schriftgröße. Aus Gründen der Barrierefreiheit können Benutzer in Android die Schriftgröße des Geräts anpassen. Benutzer, die Probleme beim Lesen von Text haben, können die Schriftgröße ihres Geräts erhöhen. Sie finden diese Option normalerweise in der Anzeigeeinstellung Ihres Telefons oder Tablets unter Schriftgröße. Es ist häufig auch über die Einstellungen für die Barrierefreiheit verfügbar.

Bei skalenunabhängigen Pixeln entspricht 16 SP genau 16 dp, wenn die Schriftgröße des Geräts normal oder 100% ist. Wenn jedoch die Schriftgröße des Geräts groß ist (z. B. 125%), übersetzt 16 sp in 20 dp oder 1,25 mal 16.

Wenn Sie dp als Einheit für die Schriftgröße verwenden, hat dieser Text eine bestimmte physische Größe, unabhängig davon, ob der Benutzer die Schriftgröße des Geräts angepasst hat. Die Verwendung von sp-Einheiten macht Menschen mit Sehbehinderung eine bessere Erfahrung.

Referenz : Udacity , Google




SDP - eine skalierbare Größe - ist im Grunde keine Einheit, sondern dimensioniert Ressourcen für unterschiedliche Bildschirmgrößen.

Probieren Sie die sdp- Bibliothek von Intuit aus. Es ist sehr praktisch, um Geräteprobleme zu lösen, und Sie können schnell mehrere Bildschirme unterstützen .

Verwendungszweck

android:paddingBottom="@dimen/_15sdp"für positiv und android:layout_marginTop="@dimen/_minus10sdp"für negativ sdp sdp

Es hat einen entsprechenden Wert in dp für jede Größe in values-sw<N>dpOrdnern (sw = kleinste Breite ).

Beachtung

Verwenden Sie es vorsichtig! In den meisten Fällen müssen Sie noch ein anderes Layout für Tablets entwerfen.

Beispiel

<LinearLayout
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="@dimen/_minus10sdp"
          android:paddingBottom="@dimen/_15sdp"
          android:orientation="horizontal" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="♡"
                    android:textColor="#ED6C27"
                    android:textSize="@dimen/_70sdp"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="U"
                    android:textColor="@android:color/black"
                    android:textSize="@dimen/_70sdp" />
            </LinearLayout>

Sie können db für Textgröße verwenden, aber ich bevorzuge ssp für Textgröße.

Weitere Informationen finden Sie auf der GitHub-Seite der Bibliothek .




Ich möchte einen einfachen Weg zum Verständnis bieten dp. Ich denke, es dpist am einfachsten zu verstehen. dpist nur eine physikalische Längeneinheit. Es hat die gleiche Dimension wie mmoder inch. Es ist einfach bequem für uns zu schreiben 50dp, 60dpanstatt 50/160 inchoder 60/160 inch, weil man dpgenau 1/160 inchdie Bildschirmgröße oder Auflösung hat.

Das einzige Problem ist, dass die Android-Auflösung einiger Bildschirme nicht genau ist. Beispielsweise kann ein mit 160 dpi klassifizierter Bildschirm tatsächlich 170 dpi haben. Das Berechnungsergebnis von dpist also unscharf. Es sollte ungefähr das gleiche sein wie 1/160 inch.




Related