Unterschied zwischen dp, dip, sp, px, in, mm, pt in Android

Unterschied zwischen dp, dip, sp, px, in, mm, pt in Android

android unterschied sp dp

In diesem kurzen Tutorial erklären wir den Unterschied zwischen dp, dip, sp, px, in, mm und pt in Android und wann wir welche Einheit verwenden sollten. Das Ziel ist es, eine konsistente Benutzeroberfläche über verschiedene Android-Bildschirmgrößen hinweg zu gestalten. Bevor wir uns mit den Unterschieden befassen, möchten wir einige grundlegende Begriffe erklären. Die Bildschirmgröße in Android wird in Kategorien wie klein, mittel, groß, extra groß, doppelt extra groß und dreifach extra groß eingeteilt. Die Bildschirmdichte ist die Anzahl der Pixel innerhalb eines Bereichs (wie Zoll) des Bildschirms. Normalerweise wird sie in Dots per Inch (dpi) gemessen. Die Bildschirmdichte wird als niedrig, mittel, hoch und extra hoch eingeteilt. Die Auflösung bezieht sich auf die Gesamtzahl der Pixel auf dem Bildschirm.

Einheiten:

  • dp: Density Independent Pixel, variiert je nach Bildschirmdichte. Bei einem 160 dpi Bildschirm entspricht 1 dp einem Pixel. Verwenden Sie dp immer, außer für Schriftgrößen.

  • dip: dip == dp. In früheren Android-Versionen wurde dip verwendet und später in dp geändert.

  • sp: Scale Independent Pixel, skaliert entsprechend der vom Benutzer bevorzugten Schriftgröße. Verwenden Sie sp für Schriftarten.

  • px: unser üblicher Standardpixel, das den Bildschirmpixeln entspricht.

  • in: Zoll, bezogen auf die physische Bildschirmgröße.

  • mm: Millimeter, bezogen auf die physische Bildschirmgröße.

  • pt: 1/72 Zoll, bezogen auf die physische Bildschirmgröße.

Verwenden Sie immer dp für alles außer Schriftgrößen und sp für Schriftgrößen. Dadurch wird die Benutzeroberfläche kompatibel mit Android-Geräten mit unterschiedlichen Dichten.

Formel zur Umrechnung zwischen den Einheiten

px = dp * (dpi / 160)

LESEN  Gold verkaufen: So machen Sie das Beste aus Ihrem Edelmetall

dp zu px auf dem Gerät

Ein Beispiel kann dabei helfen, die Umrechnung besser zu verstehen. Die Skalierung erfolgt basierend auf den Buckelgrößen 120 (ldpi), 160 (mdpi), 240 (hdpi), 320 (xhdpi), 480 (xxhdpi) und 640 (xxxhdpi). Das von Google vorgeschlagene Verhältnis für das Design beträgt 3:4:6:8:12 für ldpi:mdpi:hdpi:xhdpi:xxhdpi. Ein 150px X 150px Bild wird folgenden Bildschirmplatz einnehmen:

  • 150 dp X 150 dp Bildschirmplatz in mdpi
  • 100 dp X 100 dp Bildschirmplatz in hdpi
  • 75 dp X 75 dp Bildschirmplatz in xhdpi

Verwenden Sie den folgenden DPI-Rechner, um die Größen Ihrer Bilder und andere Abmessungen festzulegen, wenn Sie eine einheitliche Benutzeroberfläche auf allen Android-Geräten wünschen.

Bitte beachten Sie: Bei der Gestaltung von Bildern für Android in Photoshop oder anderen Bildbearbeitungsprogrammen sollte die Auflösung auf 72 Pixel/Zoll eingestellt sein.

Größen von Android-Launcher-Icons

Die folgenden Größen in Pixel gelten für verschiedene Android-Geräte:

  • LDPI: 36 x 36
  • MDPI: 48 x 48
  • HDPI: 72 x 72
  • XHDPI: 96 x 96
  • XXHDPI: 144 x 144
  • XXXHDPI: 192 x 192
  • TVDPI: 64 x 64

DPI-Rechner in Java

public class DPICalculator {
    private final float LDPI = 120;
    private final float MDPI = 160;
    private final float HDPI = 240;
    private final float XHDPI = 320;
    private final float XXHDPI = 480;
    private final float XXXHDPI = 640;

    private float forDeviceDensity;
    private float width;
    private float height;

    public DPICalculator(){}

    public DPICalculator(float forDeviceDensity, float width, float height){
      this.forDeviceDensity = forDeviceDensity;
      this.width = width;
      this.height = height;
    }

    public static void main(String... args) {
      DPICalculator dpiCalculator = new DPICalculator(240, 330, 120);
      dpiCalculator.calculateDPI();
    }

    private float getPx(float dp, float value) {
      float px = dp * (value / forDeviceDensity );
      return px;
    }

    private void calculateDPI() {
      float ldpiW = getPx(LDPI,width);
      float ldpiH = getPx(LDPI,height);
      float mdpiW = getPx(MDPI,width);
      float mdpiH = getPx(MDPI,height);
      float hdpiW = getPx(HDPI,width);
      float hdpiH = getPx(HDPI,height);
      float xdpiW = getPx(XHDPI,width);
      float xdpiH = getPx(XHDPI,height);
      float xxdpiW = getPx(XXHDPI,width);
      float xxdpiH = getPx(XXHDPI,height);
      float xxxdpiW = getPx(XXXHDPI,width);
      float xxxdpiH = getPx(XXXHDPI,height);

      System.out.println("LDPI: " + ldpiW + " X " + ldpiH);
      System.out.println("MDPI: " + mdpiW + " X " + mdpiH);
      System.out.println("HDPI: " + hdpiW + " X " + hdpiH);
      System.out.println("XHDPI: " + xdpiW + " X " + xdpiH);
      System.out.println("XXHDPI: " + xxdpiW + " X " + xxdpiH);
      System.out.println("XXXHDPI: " + xxxdpiW + " X " + xxxdpiH);
    }
}

Jetzt haben Sie die grundlegenden Informationen über die verschiedenen Einheiten in Android und können die richtige Einheit für Ihre UI-Designs auswählen. Viel Spaß beim Codieren!

LESEN  Hilfe zur Selbsthilfe: Münchner Studentin revolutioniert die Landwirtschaft in Ghana