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?

  • RelativeLayout: align View zentriert horizontal oder vertikal relativ zu anderen Ansicht
  • Wie erkennt man, ob die Navigationsschublade geöffnet ist?
  • ORMLite-Beispiele für Android werden nicht kompiliert
  • Protokollierung von Xamarin Unhandled (Android Uncaught) Ausnahmen
  • Android L Ripple Touch-Effekt auf Form?
  • So implementiere ich das "Laden von Bildern" (Deckkraft, Belichtung und Sättigung) aus den neuen Materialentwurfsrichtlinien von Google
  • Versuchte, Androids zu beheben "schlecht beraten oder falsche Verwendung einer Kernklasse" ging schlecht
  • Android Emulator nicht in Device Chooser gesehen
  • Legen Sie TabLayout auf Scroll of Content statt ToolBar aus
  • Internet Connectivity in Android überprüfen
  • Sticky immersive mode deaktiviert nach weicher Tastatur angezeigt
  • CardView in RecyclerView hat zusätzliche Margen
  • 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.