This works but the value I get is multiplied times the screen density factor
(1.5 for hdpi, 2.0 for xhdpi, etc).
Ich denke, es ist gut, den Wert gemäß Auflösung zu erhalten, aber wenn Sie dies nicht tun möchten, geben Sie dies in px an .......
Dichteunabhängiges Pixel (dp)
Eine virtuelle Pixeleinheit, die Sie beim Definieren des UI-Layouts verwenden sollten, um Layoutdimensionen oder -positionen dichteunabhängig auszudrücken. Das dichteunabhängige Pixel entspricht einem physikalischen Pixel auf einem 160-dpi-Bildschirm. Dies ist die Basisliniendichte, die vom System für einen Bildschirm mit "mittlerer" Dichte angenommen wird. Zur Laufzeit übernimmt das System bei Bedarf die Skalierung der dp-Einheiten transparent. based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels.
Sie sollten bei der Definition der Benutzeroberfläche Ihrer Anwendung immer dp-Einheiten verwenden, um eine ordnungsgemäße Anzeige Ihrer Benutzeroberfläche auf Bildschirmen mit unterschiedlichen Dichten sicherzustellen.
Ich denke, es ist gut, den Wert gemäß der Auflösung zu ändern, aber wenn Sie dies nicht tun möchten, geben Sie dies in px an .......
Verweisen Sie auf diesen Link
wie dies
dp
Dichteunabhängige Pixel - Eine abstrakte Einheit, die auf der physischen Dichte des Bildschirms basiert. Diese Einheiten beziehen sich auf einen Bildschirm mit 160 dpi (Punkte pro Zoll), auf dem 1 dp ungefähr 1px entspricht. When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down.
Das Verhältnis von dp zu Pixel ändert sich mit der Bildschirmdichte, jedoch nicht unbedingt in direktem Verhältnis. Die Verwendung von dp-Einheiten (anstelle von px-Einheiten) ist eine einfache Lösung, um die Größe der Ansichtsabmessungen in Ihrem Layout für unterschiedliche Bildschirmdichten richtig anzupassen. Mit anderen Worten, es bietet Konsistenz für die realen Größen Ihrer UI-Elemente auf verschiedenen Geräten.
px
Pixel - Entspricht den tatsächlichen Pixeln auf dem Bildschirm. Diese Maßeinheit wird nicht empfohlen, da die tatsächliche Darstellung von Gerät zu Gerät unterschiedlich sein kann. Jedes Gerät hat möglicherweise eine andere Anzahl von Pixeln pro Zoll und möglicherweise mehr oder weniger Gesamtpixel auf dem Bildschirm.
getDimensionPixelSize(int id)
, die genau angibt, dass es in Pixel zurückgegeben wird.getDimension(int id)
Daher sollte es in dp (abhängigkeitsunabhängige Einheiten) zurückgegeben werden, das zur Verwendung bereit wäre, z. B. mit ViewsetPadding