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 :
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
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); } }); } }
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
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); }}); } }
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 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; } }
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
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; } }
Si quelqu'un a une idée de ce qui ne va pas, s'il vous plait, je sollicite votre aide.
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; } }
Partager