Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿SetWidth (int pixels) utiliza dip o px?

¿SetWidth (píxeles int) utiliza píxeles independientes del dispositivo o píxeles físicos como unidad? Por ejemplo, ¿setWidth (100) establece el ancho de la vista a 100 dips o 100 pxs?

Gracias.

  • Averigüe si se han creado diferentes papeles pintados para el hogar y la lockscreen
  • Pasar valores a través de un paquete y obtener su valor en otra actividad
  • GoogleAuthException: Desconocido (android)
  • Cámara Android setJpegQuality ignorado
  • Extraer certificado crudo X.509 de un firmado APK o JAR
  • Android Volley - BasicNetwork.performRequest: Código de respuesta inesperado 400
  • 5 Solutions collect form web for “¿SetWidth (int pixels) utiliza dip o px?”

    Utiliza píxeles, pero estoy seguro de que te estás preguntando cómo usar las inmersiones en su lugar. La respuesta está en TypedValue.applyDimension() . He aquí un ejemplo de cómo convertir dips a px en código:

     // Converts 14 dip into its equivalent px Resources r = getResources(); float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, r.getDisplayMetrics()); 

    La forma correcta de obtener un número constante de DIP en código es crear un archivo XML de recursos que contenga valores de dp como:

     <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="image_width">100dp</dimen> <dimen name="image_height">75dp</dimen> </resources> 

    A continuación, consulte el recurso en su código de la siguiente manera:

     float width = getResources().getDimension(R.dimen.image_width)); float height = getResources().getDimension(R.dimen.image_height)); 

    El flotador que ha devuelto se escalará en consecuencia para la densidad de píxeles del dispositivo y, por lo tanto, no es necesario seguir replicando un método de conversión en toda la aplicación.

     float dps = 100; float pxs = dps * getResources().getDisplayMetrics().density; 

    Fuente (@Romain Guy)

    Método setWidth (100), conjunto de 100 px como ancho (no en dp). Así que puede hacer frente a diferentes problemas de anchura en teléfonos android diferentes.Por lo tanto, utilice la medición en dp en lugar de pixels.Use el código a continuación para obtener la medición en dp de ancho de muestra = 300px y altura = 400px.

     int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 300, getResources().getDisplayMetrics()); int Height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 400, getResources().getDisplayMetrics()); 

    Pixeles, por supuesto, el método está pidiendo píxeles como parámetro.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.