Ressources Android (Ressources) Gestion
Il y a beaucoup de choses utilisées pour construire une excellente application Android. En plus de coder l'application, vous devez vous concentrer sur une variété de ressources, telles que vous utilisez une variété de contenu statique, tels que les bitmaps, les couleurs, la définition de mise en page, les chaînes de l'interface utilisateur, l'animation et ainsi de suite. Ces ressources sont généralement placés dans res / sous-répertoire autonome du projet.
Cette section du tutoriel va apprendre à organiser vos ressources applicatives, spécifier des ressources alternatives, et d'y accéder dans votre application.
Les ressources organisationnelles en éclipse
Vous aurez besoin d'être placé dans chaque ressource sous-répertoire spécifique de votre projet RES / répertoire. Par exemple, ceci est un projet de niveau simple fichier:
MyProject/ src/ MyActivity.java res/ drawable/ icon.png layout/ activity_main.xml info.xml values/ strings.xml
res / répertoire contient toutes les ressources dans les différents sous-répertoires. Voici une ressource d'image, deux ressources de mise en page et un fichier de ressource de chaîne. Le tableau suivant donne une description détaillée dans les res de projets / ressources de soutien de l'annuaire.
annuaire | Type de ressource |
---|---|
anim / | fichier XML qui définit la propriété d'animation. Ils sont enregistrés dans res / anim / dossier, par type d'accès R.anim |
couleur / | fichier XML qui définit la liste d'état de couleur. Ils sont enregistrés dans res / couleur / dossier, par type d'accès R.color |
étirable / | Les fichiers d'image, tels que .png, .jpg, .gif, ou d'un fichier XML, est compilé sous forme de bitmap, la liste d'état, des formes, des images animées. Ils sont enregistrés dans res / étirable / dossier, par type d'accès R.drawable |
layout / | Interface utilisateur personnalisée fichier XML mise en page. Ils sont enregistrés dans res / layout / dossier, par type d'accès R.layout |
Menu / | fichiers XML de menu d'application personnalisés, tels que le menu Options, les menus contextuels, les sous-menus. Ils sont enregistrés dans res / menu / dossier, par type d'accès R.menu |
raw / | Tous les fichiers sont enregistrés dans leur forme originale. Nous avons besoin de R.raw.filename nommée ID de ressource, pour ouvrir le fichier brut en appelant Resource.openRawResource () |
valeurs / | Les fichiers XML contiennent des valeurs simples (telles que des chaînes, des entiers, couleur, etc.). Voici quelques ressources dans le cadre des conventions de nommage dossier. arrays.xml au nom d'un tableau des ressources, à travers le type R.array d'accès; integers.xml représente un nombre entier de ressources accessibles par classe R.integer; ressources bools.xml au nom des valeurs booléennes, type d'accès par R.bool; ressources Colors.xml au nom de la couleur, accessible par classe R.color; dimens.xml représentants les valeurs de cotes, par le biais de type R.dimen d'accès; strings.xml représente une ressource de chaîne, à travers le type R.string d'accès, des représentants de styles.xml des ressources de style, par type d'accès R.style |
xml / | En appelant Resources.getXML () pour lire des fichiers XML arbitraires à l'exécution. Divers fichiers de configuration peuvent être sauvegardés runtime ici |
Ressources alternatives
Votre application doit fournir des ressources pour soutenir une autre configuration pour un périphérique spécifique. Par exemple, vous devez fournir une autre image de ressources pour différentes résolutions d'écran, fournissant un ressources de chaîne alternatives pour différentes langues. Lors de l'exécution, Android détecte la configuration actuelle du périphérique, et de charger les ressources appropriées pour une application.
Pour identifier un ensemble de ressources alternatives pour la configuration spécifique, en suivant les étapes suivantes:
- Créer une nouvelle résolution de répertoire / bas pour <resource_name> _ <config_qualifier> sont nommés. Ici resources_name toutes les ressources mentionnées dans le tableau, comme la mise en page et les images. qualification déterminera quelles ressources utiliser la configuration personnalisée. Vous pouvez voir la documentation officielle pour obtenir une liste complète des différents types de ressources de qualification.
- Économiser les ressources alternatives en réponse à ce répertoire. Ces fichiers de ressources doivent montrer le nom du fichier de ressources par défaut est compatible avec les exemples suivants, cependant, ces documents permettront de déterminer le contenu de la substitution. Par exemple: Bien que nommer le fichier de l'image même, mais la résolution d'écran de la résolution de l'image sera plus élevé.
Voici un exemple, pour spécifier l'image par défaut de l'écran et haute résolution substitution d'image.
MyProject/ src/ main/ java/ MyActivity.java res/ drawable/ icon.png background.png drawable-hdpi/ icon.png background.png layout/ activity_main.xml info.xml values/ strings.xml
Voici un autre exemple, pour spécifier la langue de mise en page par défaut et dispositions alternatives langue arabe.
MyProject/ src/ main/ java/ MyActivity.java res/ drawable/ icon.png background.png drawable-hdpi/ icon.png background.png layout/ activity_main.xml info.xml layout-ar/ main.xml values/ strings.xml
L'accès aux ressources
Dans le développement d'applications, nous avons besoin de l'accès aux ressources définies, soit par code ou par l'intermédiaire de fichiers XML. Les sections suivantes décrivent comment accéder à ces ressources séparément dans deux scénarios.
Dans le code pour accéder aux ressources
Lorsque l'application Android est compilé pour générer une classe R, qui contient l'ID et tous les res / ressources d'annuaire. Vous pouvez utiliser la classe R, + le nom sous-classe de ressources ou d'utiliser directement l'ID de ressource pour accéder aux ressources.
Exemples
res d'accès / étirable / myimage.png, et le mettre à l'ImageView, vous pouvez utiliser le code suivant:
ImageView imageView = (ImageView) findViewById(R.id.myimageview); imageView.setImageResource(R.drawable.myimage);
La première ligne de code dans ici pour obtenir R.id.myimageview myimageview défini de ImageView dans le fichier de mise en page. La deuxième ligne avec R.drawable.myimage pour obtenir l'image dans res / étirable dans un sous-répertoire appelé myimage.
Exemples
Prenons un exemple dans lequel res / valeurs / strings.xml définie comme suit:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello, World!</string> </resources>
Maintenant, vous pouvez utiliser l'ID de l'msg objet de TextView ID de ressource pour définir le texte, comme suit:
TextView msgTextView = (TextView) findViewById(R.id.msg); msgTextView.setText(R.string.hello);
Exemples
Considérons la définition suivante de la résolution de mise en page / mise en page / activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
Le code d'application va charger la mise en page de l'activité, méthode onCreate () comme suit:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <string name="hello">Hello!</string> </resources>
Accès en XML
Considérons le XML suivant fichier de ressources res / valeurs / strings.xml, qui contient une ressource de couleur et une ressource de chaîne -
<?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="@color/opaque_red" android:text="@string/hello" />
Maintenant, vous pouvez utiliser ces ressources dans le fichier de mise en page suivante pour définir la couleur du texte et le contenu du texte:
<code><?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="@color/opaque_red" android:text="@string/hello" /> </code>
Maintenant, si vous revenez à la section précédente pour expliquer le "Bonjour tout le monde!" Instance, je peux vous confirmer dans cette section ont tous une meilleure compréhension du concept. Par conséquent, je recommande fortement de revenir à regarder les exemples précédents, et j'utilise une vue différente de l'utilisation des ressources de base.