Beziehungen zwischen Dip, px und dpi

Wenn ich in einer Layout-XML-Datei die Größe so einstellen möchte, zum Beispiel 12dip. Wird das immer 12px in mdpi und so 18px in hdpi?

Also ist es für mdpi immer wahr und wird für andere Dichten entsprechend skalieren?

  • So deaktiviere die Note des vorherigen Layouts
  • Galaxy s4 und vielleicht alle HD-Telefone? Aus Speicherfehler aufblasendes Layout
  • Besserer Android-XML-Layout-Editor als der in Eclipse
  • Error: <item> -Tag erfordert ein 'drawable' -Attribut oder ein untergeordnetes Tag, das eine Zeichenkette definiert
  • Android TableLayout Breite
  • Falsche Elemente, die in der Ebenenliste auf dem Vor-Lutscher liegen
  • Wie machst du Layouts für mehrere Android-Bildschirmgrößen?
  • Padding funktioniert nicht Android
  • 2 Solutions collect form web for “Beziehungen zwischen Dip, px und dpi”

    Diese Frage ist vollständig durch amtliche Unterlagen abgedeckt. Die Beziehungen zwischen Dip, px und dpi werden von diesem Abschnitt abgedeckt.

    Zitat:

    Dichte-unabhängiges Pixel (dp)

    Eine virtuelle Pixeleinheit, die Anwendungen bei der Definition ihrer Benutzeroberfläche verwenden können, um Layoutabmessungen oder Positionen in einer dichteunabhängigen Weise auszudrücken.

    Das dichteunabhängige Pixel entspricht einem physikalischen Pixel auf einem 160 dpi-Bildschirm, wobei die Baseline-Dichte von der Plattform angenommen wird (wie später in diesem Dokument beschrieben). Zur Laufzeit verarbeitet die Plattform jede Skalierung der benötigten dp-Einheiten, basierend auf der tatsächlichen Dichte des verwendeten Bildschirms. Die Umwandlung von dp-Einheiten zu Bildschirmpixeln ist einfach: Pixel = dps * (Dichte / 160). Zum Beispiel, auf 240 dpi Bildschirm, 1 dp würde 1,5 physikalische Pixel. Die Verwendung von dp-Einheiten zur Definition der Benutzeroberfläche Ihrer Anwendung ist sehr empfehlenswert, um eine ordnungsgemäße Anzeige Ihrer Benutzeroberfläche auf verschiedenen Bildschirmen zu gewährleisten.

    Also die Aussage:

    Das ist immer 12px in mdpi und so 18px in hdpi

    Scheint nach den dokumenten richtig zu sein.

    12dp wird 12px auf einem Gerät mit einer Dichte von 160 dpi sein. Die Docs sagen nicht, dass alle mdpi Geräte genau 160 dpi haben, so dass es scheint, dass Sie mdpi Geräte mit anderen Dichten (zB 150 oder 180 dpi) finden können. In diesen Fällen wäre die Beziehung 1dp = 1px nicht wahr.

    Sie können sich nur dieser Beziehung sicher sein:

     px = dp * (dpi / 160) 

    Wenn ein Gerät eine Dichte von 320 dpi hat, entspricht jeder dp 2 px, denn 320/160 ist 2. Ich würde sagen, dass 2 der " getResources().getDisplayMetrics().density " ist, aber es ist auch das, was man mit getResources().getDisplayMetrics().density , so heißt es auch "Dichte".

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.