La función de Android View.setPadding(int left, int top, int right, int bottom)
solo acepta valores en px pero quiero establecer el relleno en dp. ¿Hay alguna manera de evitarlo?
android
android-layout
Sharj
fuente
fuente
getResources()
es una función heredada por una actividad, pero estoy tratando de usar estas líneas en un adaptador de vista de lista personalizado. ¿Hay alguna forma de que pueda hacer esto si no puedo llamargetResources()
?Si define la dimensión (en dp o lo que sea) en un archivo XML (que es mejor de todos modos, al menos en la mayoría de los casos), puede obtener el valor de píxel usando este código:
fuente
Hay una mejor manera de convertir valor a dp mediante programación:
Luego aplique
dpValue
a su método, por ejemplo:setPadding(dpValue,dpValue,dpValue,dpValue);
fuente
Puede calcular los píxeles para un valor de DPI específico: http://forum.xda-developers.com/showpost.php?p=6284958&postcount=31
fuente
Tengo el mismo problema. La única solución que he encontrado (realmente no te ayudará :)) es configurarla en el archivo Xml.
Si puede obtener la densidad del código, puede utilizar la conversión: "La conversión de unidades de inmersión en píxeles de pantalla es simple: píxeles = inmersiones * (densidad / 160)". (de http://developer.android.com/guide/practices/screens_support.html )
Editar: puede obtener la densidad de la pantalla: http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi
fuente