2017-08-22 1 views
5

Pour un projet studio android, je trouve un fichier nommé « drawables.xml » dans le dossier « valeurs »Quel est l'objectif du fichier "drawables.xml" dans le répertoire "values"?

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item> 
    <item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item> 
    <item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item> 
    <item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item> 
    <item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item> 
    <item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item> 
</resources> 

Quel est le but de ce fichier? Pourquoi crée-t-il une autre référence à un dessin existant et pourquoi ne pas simplement utiliser "@android: drawable/ic_menu_camera"?

Répondre

9

Il se peut que le développeur ait un peu d'avenir en tête.

Le développeur aurait pu avoir le code android.R.drawable.ic_menu_camera de référence Java et avoir des dispositions ou d'autres choses de référence @android:drawable/ic_menu_camera. Cependant, si à un moment ultérieur, le développeur devait passer de l'utilisation d'une plate-forme pouvant être dessinée à une version personnalisée, toutes ces références devraient être modifiées.

Les alias dessinables configurés dans ce fichier permettent au code Java de référencer R.drawable.ic_menu_camera et les mises en page et autres références @drawable/ic_menu_camera. À l'heure actuelle, les alias indiquent que ces drawables "redirigent" vers des drawables de plate-forme. Cependant, à un certain moment dans le futur, le développeur pourrait ajouter un ic_menu_camera dessinable personnalisé, supprimer l'alias ... et rien d'autre ne doit changer dans le code Java, les dispositions, etc.

Peu d'applications se réfèrent aux drawables de plate-forme, et donc vous ne verrez pas ce genre de truc utilisé la plupart du temps. Toutefois, dans les cas où les applications font référence aux ressources de la plateforme, cette approche d'aliasing peut réduire la maintenance à long terme. FWIW, je couvre ceci plus en this blog post.

1

Eh bien, à mon avis, ce fichier est inutile, car vous avez déjà les noms de fichiers drawable.