Android: Valores prioritarios

En mi aplicación en la carpeta res , hay carpetas de valores para diferentes dispositivos. Por ejemplo:

Valores-mdpi
Valores-hdpi
Valores-v14
Values-v17
Valores-w480
Valores-w720

Etc.

Me pregunto cuál es la prioridad de estas carpetas para Android?

Vamos a imaginar dispositivos par:

 first : 480*800 hdpi v14 second: 320*480 mdpi v17 third : 720*1280 hdpi v17 

¿Qué carpeta usaría Android para cada uno de ellos?

Puede encontrar la prioridad de las carpetas de recursos aquí en esta página . Básicamente se utiliza para soportar diferentes dispositivos y configuraciones.

Android utiliza una cierta lógica para determinar la mejor carpeta de recursos de coincidencia posible para un dispositivo. Esto se explica en esta página de documentación .

En cuanto a la consulta de dispositivos:

  • Primero: 480 * 800 hdpi v14 – valores-hdpi
  • Segundo: 320 * 480 mdpi v17 – valores-mdpi
  • Tercero: 720 * 1280 hdpi v17 – valores-w480

En la lista proporcionada por usted, values-w480 (devices with lowest width of 480dp, only from API 13) tiene el mérito más alto. Así que cualquier dispositivo cumpla con ese criterio, tomará los recursos de esa carpeta.

Los values-vXX (devices with API >= XX) tienen el menor mérito. Así que si las otras carpetas no se toman, sólo Android toma los recursos de esta carpeta. Compruebe la tabla con los calificadores de recursos para obtener más información sobre ese tema. Los calificadores de recursos se enumeran en la tabla en el orden de precedencia de calificadores de recursos.

  • Primer caso: Normal hdpi – menos de 480dp de ancho – Así valores-hdpi
  • Segundo caso: mdpi normal – menos de 480dp de ancho – valores-mdpi (valores-mdpi tiene más weightage que valores-v17)
  • Tercer caso: dispositivo hdpi con ancho de 480dp (720 / 1.5 = 480) API 17 – valores-w480

Esto es lo que indica la documentación de Android:

Tenga en cuenta que, cuando el sistema Android elige qué recursos utilizar en tiempo de ejecución, utiliza cierta lógica para determinar los recursos de "mejor coincidencia". Es decir, los calificadores que utilice no tienen que coincidir exactamente con la configuración de pantalla actual en todos los casos para que el sistema los utilice. Específicamente, al seleccionar recursos basados ​​en los calificadores de tamaño, el sistema utilizará recursos diseñados para una pantalla más pequeña que la actual si no hay recursos que correspondan mejor (por ejemplo, una pantalla grande usará recursos de pantalla de tamaño normal si necesario). Sin embargo, si los únicos recursos disponibles son más grandes que la pantalla actual, el sistema no los utilizará y su aplicación se bloqueará si ningún otro recurso coincide con la configuración del dispositivo (por ejemplo, si todos los recursos de diseño están etiquetados con el calificador xlarge, Dispositivo es una pantalla de tamaño normal). Para obtener más información acerca de cómo el sistema selecciona los recursos, lea Cómo Android encuentra el recurso de mejor coincidencia.

Fuente

Cómo Android encuentra el recurso de mejor coincidencia

  • Dispositivo NO COMPATIBLE para Android Studio
  • Diferencia entre las API de destino de Google y el objetivo de Android
  • ¿Restringir las ventas de una aplicación por dispositivos específicos?
  • Obtener el nombre de dispositivo definido por el usuario de Android por código
  • No se puede mostrar el dispositivo android en ubuntu 13.04
  • Android: Configuración de AVD para Galaxy S3-Like AVD
  • No hay controlador para Asus MeMO Pad para hacer la depuración de aplicaciones con eclipse
  • Confusión de id de dispositivo de android
  • Android: Error de instalación: INSTALL_FAILED_INSUFFICIENT_STORAGE
  • Android Studio: ¿qué está causando los logs de la fuente de alimentación de la batería logcat?
  • Android Studio no ve el dispositivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.