Ich bin ziemlich verwirrt über die Größenänderung mit Picasso. Wenn ich es richtig verstehe, müssen wir Pixel an die Methode resize
übergeben, also müssen wir sie manuell von dp konvertieren, um unterschiedliche Bildschirmdichten zu unterstützen. Aber was macht die resizeDimen
Methode? Nimmt es Dimension in DP, so müssen wir sie nicht mehr manuell konvertieren? Wie ist das mit der fit
Methode verbunden?Verwendet Picassos resizeDimen() Methode dp oder Pixel?
Antwort
resizeDimen
Verwendung Dimen Ressource (nicht nether px dp). Dimen Ressourcen sieht wie<dimen name="logo_width">96dp</dimen>
aus und sie werden wie folgt verwendet:R.dimen.logo_width
.resize
Verfahren Verwendung pixelfit
Methode Ihre Quelle entsprechend der Zielgröße (in der Regel ein Image)
Hinweis Größe verändern: Die Umwandlung von jeder Dimension Einheiten Pixel von einem Android Kontext gemacht (der Kontext in Picasso.with(context)
). Werfen Sie einen Blick auf diese method von Picasso Quellcode und diese method Android-Quellcode, um zu verstehen, wie die Konvertierung funktioniert.
Die Größe resizeDimen
ändert sich auch in Pixel, außer dass Sie nicht den genauen ganzzahligen Wert angeben müssen, sondern stattdessen die Ressourcen-ID übergeben können.
So ist resize(96,96)
die gleiche wie reSizeDimen(R.dimen.header_logo_w, R.dimen.header_logo_h)
wo
res/values/dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="header_logo_h">96px</dimen>
<dimen name="header_logo_w">96px</dimen>
</resources>
Lassen Sie mich wissen, wenn Sie weitere explaination benötigen
Ok, danke. Also wenn ich 'fit()' nicht verwende, dann muss ich immer darauf achten, dp in px umzuwandeln, oder? –
Und was passiert, wenn ich eine Ressourcen-ID übergeben, die in DP definiert ist? –
@FlorianWalther - Wenn Sie den Quellcode von Picasso studieren, werden Sie sehen, dass er den ganzzahligen Wert in Ihrer Ressourcendatei immer in die entsprechenden Pixel umwandelt, indem er resources.getDimensionPixelSize -> https://github.com/square/picasso verwendet /blob/5ddd855c1e98379a1812c0ccccbdc200a30312cc/picasso/src/main/java/com/squarepup/picasso/RequestCreator.java –
- 1. ruft getMeasuredHeight() Rückgabewerte in Pixel oder dp
- 2. Funktioniert Flexbox in React Native DP oder Pixel?
- 3. Pixel zu dp Konverter basierend auf PPI
- 4. Picassos Platzhalter funktioniert nicht
- 5. Converting dp in Pixel für die Unterstützung mehrerer Bildschirme
- 6. Android, wie Pixel von UI in XML in DP konvertieren?
- 7. Erhalten Breite von Alertdialog in Pixeln oder dp
- 8. Dp in xml passt nicht zu java dp-px Konvertierung
- 9. Konvertieren von iOS PT zu Android DP?
- 10. XML dp anders berechnet dp (dip)
- 11. Warum "dp-to-pixel" Verhältnis mit der Bildschirmdichte ändert, aber nicht unbedingt in direktem Verhältnis
- 12. Kann Android Unterstützung dp weniger als 1 dp?
- 13. Grundlagen der geräteunabhängigen Pixel
- 14. Android DP Grenze für garantierten Raum
- 15. Distinct Subsequenzen DP Erklärung
- 16. Bootstrap DP-Datum vergleichen
- 17. Verwirrende Logik von dp
- 18. Ein Problem über Algorithmus von String, dp, Graph oder etw.
- 19. Tankstellenähnlicher Algorithmus mit minimalen Kosten? Gierig oder DP?
- 20. Android die Definition Dichte-unabhängige Pixel
- 21. android dp size für LinearLayout
- 22. Python: Stairstep DP Lösung Verständnis
- 23. Maximierung des Gewinns mit DP?
- 24. Wie wird das Bild nach Picassos Mittelschnitt ausgerichtet?
- 25. Wann wird das "native Pixel-Objekt" auf der nativen Ebene in der Methode nativeRecycle() noch verwendet?
- 26. Pixel-zu-Pixel-Transformation
- 27. WPF Initializing DP in-Code vs. XAML
- 28. Maximum Profit- memoization, DP, Optimalitäts
- 29. Excel-Formatierung zu korrigieren dp
- 30. dp Konvertieren ohne Kontext px
Das verwirrt mich. Warum bietet die "resize" -Methode nicht die Möglichkeit, statt px die Größe auf dp zu ändern, aber die 'resizeDimen'-Methode benötigt eine Ressourcen-ID, die auf dp zeigt? –
Die Standardeinheit für Picasso ist das Pixel (wie Sie in der Resize-Methode sehen können). Aber für die resizeDimen-Methode ist dies nicht Picasso, die den Wert von [jeder Maßeinheit] in px umwandeln, das ist das Android-System. –
Also, wenn ich es richtig verstehe, auf diese Weise kann ich vermeiden, dp zu Pixeln manuell zu konvertieren und stattdessen eine dp res id übergeben? –