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?
- Aplicación de sistema preinstalada de Android con permiso de administrador de dispositivo?
- La publicación de Android en Facebook no funciona cuando la aplicación de Facebook ya está instalada en el dispositivo
- ¿Hay alguna solución para Android studio mantener desconectar el dispositivo de prueba en Macbook Pro?
- No se puede conectar a bluetooth Dispositivos de dispositivos de salud utilizando Android BluetoothProfile
- Descripción de la orientación del teléfono Android, incluida la brújula
- El dispositivo no se muestra en DDMS
- Android SensorManager extraño cómo remapCoordinateSystem
- copia sqlite db al dispositivo android falla
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
- Android, ¿Cómo poner un ArrayList <myObject> en un intento?
- Problemas de diseño en diferentes pantallas