2 votes

Comment remplir un gridView à l'aide d'un ImageAdapter avec un tableau de dessin stocké en xml ?

J'utilise l'exemple d'ImageAdpater fourni dans la documentation de Google pour remplir une grille de tableaux. Ce que j'essaie de faire, c'est de remplir la grille avec un tableau de tableaux dans un fichier xml.

J'utilise TypedArray imgs = getResources().obtainTypedArray(R.array.log_type_icons); pour accéder au tableau depuis mon activité principale, mais cela ne fonctionne pas dans la classe ImageAdapter.

Le tableau :

<string-array name="log_type_icons">
    <item>@drawable/ic_launcher</item>
    <item>@drawable/ic_headache</item>
    <item>@drawable/ic_man</item>
    <item>@drawable/ic_woman</item>
    <item>@drawable/ic_kneel</item>
</string-array>

L'adaptateur d'image fonctionnel :

public class ImageAdapter extends BaseAdapter {
private Context mContext;

public ImageAdapter(Context c) {
    mContext = c;

}

public int getCount() {
    return mThumbIds.length;
}

public Object getItem(int position) {
    return null;
}

public long getItemId(int position) {
    return 0;
}

// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    Log.i("log tag", "gotten resources: " + mThumbIds);
    if (convertView == null) { // if it's not recycled, initialize some
                                // attributes
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }

    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}

// references to our images
private Integer[] mThumbIds = { R.drawable.ic_headache,
        R.drawable.ic_kneel, R.drawable.ic_man, R.drawable.ic_woman,
        R.drawable.ic_launcher };
}

Je sais que je pourrais ajouter manuellement les références des objets à dessiner au tableau Integer, mais je fais également référence au tableau xml à partir de mon activité principale. L'idéal serait donc de pouvoir ajouter les références au tableau xml sans avoir à modifier le code. Quelqu'un a-t-il une idée de ce problème ? Est-ce que je fais quelque chose de mal ou est-ce que je rate quelque chose d'évident ?

Toute aide serait appréciée, Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X