Latest web development tutorials

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>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;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" /&gt;
</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.