IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème avec un GridView et Picasso


Sujet :

Android

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2015
    Messages : 22
    Points : 23
    Points
    23
    Par défaut Problème avec un GridView et Picasso
    Bonjour,

    Voilà mon problème. J'ai une activité avec un gridview, j'ai utilisé pour ça la librairie Picasso puisqu'elle apporte beaucoup d'avantages.
    Ma galerie marchait très bien jusqu'à maintenant. J'avais une galerie, je clique sur une image (ReferenceActivity.java), ça l'ouvre en plus grand dans une autre activité (ReferenceActivity2.java).
    Mais par besoin, j'ai décidé d'ajouter des noms à chaque image et depuis plus rien ne marche. La galerie s'affiche avec les noms mais dés que je clique sur une image, elle ne s'ouvre plus.
    Je veux juste que l'image apparaisse en plus grand, pas nécessairement avec son nom.
    Il y a un endroit où je ne sais pas ce que je dois écrire et je pense que c'est à cause de ça.

    Voici mon code si quelqu'un peut m'aider :

    ReferenceActivity.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    public class ReferencesActivity extends Activity {
     
        public Spinner categorie_liste = null;
        private GridView gridView;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_references);
     
            gridView = (GridView) findViewById(R.id.gridView);
     
            final ArrayList<Maquette> maquettes = Utils.getMaquettes();
            ImageAdapter mAdapter = new ImageAdapter(getApplicationContext(), maquettes);
            gridView.setAdapter(mAdapter);
     
            categorie_liste = (Spinner) findViewById(R.id.categorie_liste);
     
            List<String> list = new ArrayList<String>();
            list.add("Choisir une catégorie");
            list.add("Agriculture");
            list.add("Architecture");
            list.add("Automobile");
            list.add("Bâtiment");
            list.add("Beauté, bien-être");
            list.add("Bijouterie");
            list.add("Bois");
            list.add("Business");
            list.add("Coiffure");
            list.add("Design");
            list.add("Droit");
            list.add("Fashion");
            list.add("Fleurs");
            list.add("Immobilier");
            list.add("Informatique");
            list.add("Institutionnel");
            list.add("Médical");
            list.add("Mobilier");
            list.add("Modélisme");
            list.add("Motos");
            list.add("Puériculture");
            list.add("Restauration");
            list.add("Téléphonie");
            list.add("Textile");
     
            ArrayAdapter<String> Adapter = new ArrayAdapter<String>(this,
                    R.layout.spinner_item, list);
            Adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
            categorie_liste.setAdapter(Adapter);
     
            gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    Intent intent = new Intent(ReferencesActivity.this, ReferencesActivity.class);
                    intent.putExtra("position", i);
                    startActivity(intent);
                }
            });
        }
    }
    ReferenceActivity2.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    public class ReferencesActivity2 extends Activity {
     
        private ArrayList<Maquette> maquettes;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_references2);
     
            final ArrayList<Maquette> maquettes = Utils.getMaquettes();
     
            final ImageView imageView = (ImageView) findViewById(R.id.imageView);
            Button btnAnnuler = (Button) findViewById(R.id.btnAnnuler);
            Button btnChoisir = (Button) findViewById(R.id.btnChoisir);
     
            final int i = getIntent().getIntExtra("position", -1);
            if (i != -1) {
                Picasso.with(ReferencesActivity2.this)
     
    // C'est ici que ça ne marche pas, il ne comprend pas maquette et tout foire
     
                        .load(ImageAdapter.maquette.getImage())
                        .placeholder(R.drawable.kalitys_logo)
                        .resize(550, 600)
                        .error(R.drawable.kalitys_logo)
                        .into(imageView);
            } else {
                Picasso.with(ReferencesActivity2.this)
                        .load(R.drawable.kalitys_logo)
                        .resize(550, 600)
                        .into(imageView);
            }
     
            btnAnnuler.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(ReferencesActivity2.this, ReferencesActivity.class);
                    startActivity(intent);
                }
            });
     
            btnChoisir.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View arg0) {
                    Drawable drawable=imageView.getDrawable();
                    Bitmap bitmap= ((BitmapDrawable)drawable).getBitmap();
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
                    byte[] b = baos.toByteArray();
                    Intent intent=new Intent(ReferencesActivity2.this,VitrineActivity4.class);
                    intent.putExtra("picture", b);
                    startActivity(intent);
                }});
        }
    }
    Utils.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public class Utils {
     
        public static ArrayList<Maquette> getMaquettes() {
            ArrayList<Maquette> maquettes = new ArrayList<Maquette>();
            Maquette maquette = new Maquette("automobile", R.drawable.automobile);
            maquettes.add(maquette);
            maquette = new Maquette("beauté", R.drawable.beaute);
            maquettes.add(maquette);
            maquette = new Maquette("bien-être", R.drawable.bienetre);
            maquettes.add(maquette);
            maquette = new Maquette("coiffure", R.drawable.coiffure);
            maquettes.add(maquette);
            maquette = new Maquette("immobilier", R.drawable.immobilier);
            maquettes.add(maquette);
            maquette = new Maquette("restauration", R.drawable.restauration);
            maquettes.add(maquette);
            maquette = new Maquette("santé", R.drawable.sante);
            maquettes.add(maquette);
            maquette = new Maquette("vêtement", R.drawable.vetement);
            maquettes.add(maquette);
            return maquettes;
        }
    }
    ImageAdapter.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    public class ImageAdapter extends BaseAdapter {
     
        private Context mContext;
        private ArrayList<Maquette> maquettes;
     
        public ImageAdapter(Context mContext, ArrayList<Maquette> maquettes) {
            this.mContext = mContext;
            this.maquettes = maquettes;
        }
     
        @Override
        public int getCount() {
            return maquettes.size();
        }
     
        @Override
        public Object getItem(int i) {
            return maquettes.get(i);
        }
     
        @Override
        public long getItemId(int i) {
            return 0;
        }
     
        public static class ViewHolder {
            ImageView mImageView;
            TextView mTextViewTitle;
        }
     
        @Override
        public View getView(int i, View convertView, ViewGroup viewGroup) {
            ViewHolder mViewHolder = null;
            if (convertView == null) {
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflater.inflate(R.layout.item_maquette, null);
                mViewHolder = new ViewHolder();
                convertView.setTag(mViewHolder);
            } else {
                mViewHolder = (ViewHolder) convertView.getTag();
            }
     
            mViewHolder.mImageView = (ImageView) convertView.findViewById(R.id.img_maquette);
            mViewHolder.mTextViewTitle = (TextView) convertView.findViewById(R.id.title_maquette);
     
            Maquette maquette = (Maquette) getItem(i);
     
            Picasso.with(mContext)
                    .load(maquette.getImage())
                    .placeholder(R.drawable.kalitys_logo)
                    .error(R.drawable.kalitys_logo)
                    .into(mViewHolder.mImageView);
            mViewHolder.mTextViewTitle.setText(maquette.getTitle());
            mViewHolder.mImageView.setImageResource(maquette.getImage());
            return convertView;
        }
    }
    Maquette.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public class Maquette implements Serializable {
     
        private String title;
        private int image;
     
        public Maquette(String title, int image) {
            this.title = title;
            this.image = image;
        }
     
        public String getTitle() {
            return title;
        }
     
        public void setTitle(String title) {
            this.title = title;
        }
     
        public int getImage() {
            return image;
        }
     
        public void setImage(int image) {
            this.image = image;
        }
    }
    Si quelqu'un a une idée de ce qui ne va pas, s'il vous plait, je sollicite votre aide.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 34
    Points
    34
    Par défaut
    Hello,
    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .load(ImageAdapter.maquette.getImage())
    il y a un soucis je pense,
    ImageAdapter n a pas de variable static maquette

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2015
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Merci de ta réponse. Oui effectivement, c'est cette ligne qui me pose problème, mais je ne vois pas quoi mettre.
    J'arrive pas à trouver et du coup, je ne récupère l'image dans la deuxième activité.
    Tu aurais une idée ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 34
    Points
    34
    Par défaut
    je pense que ceci devrait le faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .load(Utils.getMaquettes().get(i).getImage())
    tu passes l index de ton image dans ton intent et tu le récupères dans i
    Ta liste d image est dans Utils.getMaquettes()
    tu récupères ton objet Image a l index i et voilà

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2015
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Super ça marche ! Merci beaucoup !
    Merci cela engendre un autre problème.
    Les images de la galerie ne s'affiche pas toutes, ça affiche essentiellement l'image de chargement.
    Et lorsque je clique sur l'image, l'image qui s'affiche en grand et également l'image de chargement.
    Comment cela se fait-il ?

    En tout cas, je te remercie de ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec mon gridview
    Par Marin d'Eau Douce dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/10/2011, 16h33
  2. Problème avec Gridview SelectedRow
    Par yass dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/07/2008, 11h55
  3. GridView, problème avec les Colonnes
    Par LeViking dans le forum ASP.NET
    Réponses: 31
    Dernier message: 20/02/2008, 15h32
  4. Problème avec le gridview
    Par 404error dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/04/2007, 14h19
  5. Problème de pagination avec un GridView
    Par Perceuse-Killer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/02/2007, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo