Die Android-Funktion View.setPadding(int left, int top, int right, int bottom)
akzeptiert nur Werte in px, aber ich möchte die Auffüllung in dp einstellen. Gibt es einen Weg daran vorbei?
android
android-layout
Sharj
quelle
quelle
getResources()
gehe davon aus, dass dies eine Funktion ist, die von einer Aktivität geerbt wird, aber ich versuche, diese Zeilen in einem benutzerdefinierten Listenansichtsadapter zu verwenden. Kann ich das auf irgendeine Weise tun, wenn ich nicht anrufen kanngetResources()
?Wenn Sie die Dimension (in dp oder was auch immer) in einer XML-Datei definieren (was zumindest in den meisten Fällen ohnehin besser ist), können Sie den Pixelwert mithilfe dieses Codes ermitteln:
quelle
Es gibt eine bessere Möglichkeit, Werte programmgesteuert in dp umzuwandeln:
Dann wenden Sie
dpValue
auf Ihre Methode an, zum Beispiel:setPadding(dpValue,dpValue,dpValue,dpValue);
quelle
Sie können die Pixel für einen bestimmten DPI-Wert berechnen: http://forum.xda-developers.com/showpost.php?p=6284958&postcount=31
quelle
Ich habe das gleiche Problem. Die einzige Lösung, die ich gefunden habe (es wird dir nicht wirklich helfen :)), besteht darin, sie in der XML-Datei festzulegen.
Wenn Sie die Dichte aus dem Code erhalten können, können Sie die Konvertierung verwenden: "Die Konvertierung von Dip-Einheiten in Bildschirmpixel ist einfach: Pixel = Dips * (Dichte / 160)." (von http://developer.android.com/guide/practices/screens_support.html )
Bearbeiten: Sie können die Bildschirmdichte abrufen: http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi
quelle