En Android, a veces, es necesario hacer un tratamiento del tamaño de ciertos elementos en pixels, durante la ejecución de la aplicación, como por ejemplo en:
view.setPadding(int, int, int, int);
Sin embargo, sabemos que, sobre todo al diseñar interfaces, es muy conveniente utilizar dip (density independent pixel) a la hora de especificar tamaños, para evitar variaciones entre dispositivos con resoluciones diferentes.
De manera que, para ejecutar código como el de arriba (cambios en runtime), podemos hacer lo siguiente:
float sizeInDip = 10f; int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sizeInDip, getResources().getDisplayMetrics());
Vía | James Elsey Blog