Wie konvertiere ich Dp in Pixel in Android Jetpack Compose?

Lesezeit: 1 Minute

Die meisten von Jetpack Compose API werden verwendet Dp als Maßeinheit, aber manchmal ist ein Pixelwert erforderlich. Wie kann ich einen dp-Wert in px umwandeln? Nur als Beispiel gibt’s GraphicsLayer() Modifikator, der akzeptiert translationX/Y Argumente in Pixel.

Benutzeravatar von Valeriy Katkov
Walerij Katkow

Es gibt toPx() und roundToPx() Methoden definiert durch Dichte Schnittstelle, Sie können es wie folgt verwenden:

import androidx.compose.ui.platform.LocalDensity

val pxValue = with(LocalDensity.current) { 16.dp.toPx() }

// or

val pxValue = LocalDensity.current.run { 16.dp.toPx() }

Ein solcher Ausdruck könnte verwirrend aussehen, wenn Sie neu in der Kotlin-Sprache sind, also lassen Sie uns ihn aufschlüsseln und sehen, wie er funktioniert. toPx() ist ein Erweiterungsfunktion von Dp Klasse, Sie können es sich als eine vorstellen Dp Klasse Methode. Aber seit toPx() ist innen definiert Dichte Schnittstelle, können Sie es nicht verwenden, es sei denn, Sie stellen eine Dichte als Empfänger bereit. Und schließlich können Sie die Stromdichte von an erhalten ZusammensetzungLokal genannt Lokale Dichte.

  • Wird AmbientDensity nun CompositionLocalDensity heißen? (Eigentlich heißt es LocalDensity jetzt habe ich nachgesehen)

    – EpicPandaForce

    15. Februar 2021 um 12:28 Uhr


  • @EpicPandaForce Danke! In der Tat, Ambients werden benannt CompositionLocalist seit alpha-12ich habe die Antwort aktualisiert

    – Walerij Katkow

    15. Februar 2021 um 15:01 Uhr

  • tolle Erklärung der Syntax; Ich bin hierher gekommen, um genau zu suchen, was das für Zauberei ist!

    – Benutzer2297550

    24. Februar 2021 um 15:27 Uhr

  • Und wenn Sie von Pixeln in Dp konvertieren möchten, ist es das LocalDensity.current.run { 16.toDp() }

    – Seekatze

    18. November 2021 um 13:09 Uhr

  • seltsam, es erfordert @Composable-Kontext zum Umwandeln von dp in px. Warum?

    – Michael Abyzov

    11. August 2022 um 12:08 Uhr

1438840cookie-checkWie konvertiere ich Dp in Pixel in Android Jetpack Compose?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy