¿SetWidth (int píxeles) utiliza píxeles independientes del dispositivo o píxeles físicos como unidad? Por ejemplo, ¿setWidth (100) establece el ancho de una vista en 100 dips o 100 pxs?
Gracias.
¿SetWidth (int píxeles) utiliza píxeles independientes del dispositivo o píxeles físicos como unidad? Por ejemplo, ¿setWidth (100) establece el ancho de una vista en 100 dips o 100 pxs?
Gracias.
Utiliza píxeles, pero estoy seguro de que se está preguntando cómo utilizar las inmersiones. La respuesta está en TypedValue.applyDimension()
. Aquí hay un ejemplo de cómo convertir dips a px en código:
// Converts 14 dip into its equivalent px
Resources r = getResources();
int px = Math.round(TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 14,r.getDisplayMetrics()));
La forma correcta de obtener un número constante de DIP en el código es crear un archivo XML de recursos que contenga valores dp un poco como:
Luego, consulte el recurso en su código así:
El flotador que ha devuelto se escalará en consecuencia para la densidad de píxeles del dispositivo, por lo que no es necesario que siga replicando un método de conversión en toda su aplicación.
fuente
Método setWidth (100), establezca 100 px como ancho (no en dp). Por lo tanto, puede enfrentar problemas de ancho variable en diferentes teléfonos Android. Por lo tanto, use la medición en dp en lugar de píxeles. Utilice el siguiente código para obtener la medición en dp del ancho de la muestra = 300px y altura = 400px.
fuente
Fuente (@Romain Guy)
fuente
Píxeles, por supuesto, el método solicita píxeles como parámetro.
fuente
Según las respuestas anteriores que me funcionan bien, genero algunos métodos de ayuda , solo agrégalos en tus utilidades para usarlos en todo el proyecto.
fuente