neoakira Posted May 17, 2009 Share Posted May 17, 2009 Voici un exemple très simple pour avoir un aperçu de toutes les photos que vous prises avec l'appareil photos et qui sont enregistrées sur la carte sd. voici le layout : main.xml <?xml version="1.0" encoding="utf-8"?> android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="90dp" android:stretchMode="columnWidth" android:gravity="center" /> voici le code : main.java package com.neogb.imageupload; import java.io.File; import android.app.Activity; import android.content.Context; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; public class main extends Activity { private File[] mlistFiles; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mlistFiles = new File("/sdcard/dcim/camera").listFiles(); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); } public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mlistFiles.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { 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; } BitmapFactory.Options options=new BitmapFactory.Options(); options.inSampleSize = 20; imageView.setImageBitmap(BitmapFactory.decodeFile(mlistFiles[position].getPath(), options)); return imageView; } } } Voila, il vous reste plus qu'à implémenter les actions au click d'une image par exemple... Quote Link to comment Share on other sites More sharing options...
Seb Posted May 17, 2009 Share Posted May 17, 2009 Super :) Il faut vraiment que je m'y mette ... à faire du dev ... :p J'ai une ou deux idées qui trainent dans la tête en plus. Quote Link to comment Share on other sites More sharing options...
Pitivier Posted May 17, 2009 Share Posted May 17, 2009 moi aussi. C'est juste le temps et la motivation. Après avoir fait du java toute la journée. J'ai légèrement envie d'autre chose le soir et le week end. Quote Link to comment Share on other sites More sharing options...
xau Posted May 17, 2009 Share Posted May 17, 2009 eh, faut qu'on monte une Frandroid Dream Team... Quelqu'un connais de bon tuto pour le Java? Quote Link to comment Share on other sites More sharing options...
Jorodan Posted May 17, 2009 Share Posted May 17, 2009 Les cours de mes profs :P ... je sors... Quote Link to comment Share on other sites More sharing options...
Pitivier Posted May 17, 2009 Share Posted May 17, 2009 très bon site avec un forum très actif http://java.developpez.com/ Quote Link to comment Share on other sites More sharing options...
visje Posted June 9, 2010 Share Posted June 9, 2010 Bonjour, je remonte ce topic parceque j'ai un problème qui me tracasse trop depuis quelque temps: j'utilise imgView.setImageURI(imageURI); pour mettre l'URI d'une image dans une imageView. Je voudrais ensuite la visualiser et la mettre dans une gallery. Le problème est que celà marche pour certaines images seulement !! :o ... Je comprend pas pourquoi :/ !? De plus certaines grandes images marchent et certaines petites images ne fonctionnent pas :o !! Lorsque je visualise une image qui ne marche pas, rien ne s'affiche ... et un carré gris va dans la gallery -_- ... Pour une image qui marche .. bah tout est nickel ^^ Mais le truc bizzare c'est que lorsque je met les images qui ne marchent pas en tant que ressource du projet avec ca: imgView.setImageResource(R.drawable.mon_image_qui_marche_pas); eh bien là, CA MAARCHE :o !! Pouvez vous m'expliquer d'où vient le problème :| je vous en serais très reconnaissant :) MERCI ! Quote Link to comment Share on other sites More sharing options...
visje Posted June 9, 2010 Share Posted June 9, 2010 désolé pour le double poste, mais voici une image du problème (en gris les images qui ne marchent pas ... -_-) Quote Link to comment Share on other sites More sharing options...
renotm Posted June 9, 2010 Share Posted June 9, 2010 Bonjour, Merci pour le tuto sympa. J'ai un peu modifié ton code, car j'ai plus de 300 images dans mon téléphone et c'est un peu long. Dans l'image adapter je charge une image par defaut de petite taille. ensuite une fois l'ensemble des ImageView ajoutés au GridView je crée un nouveau thread afin de charger les images une par une sans plomber l'UI. j'utilise un Handler qui se charge de mettre à jour les vignettes. Cela marche bien sur les vignettes visibles. une fois cette vignettes chargée si je scrolle je vois que l'image par défaut est toujours affichées. Et si je remonte aux images en haut qui étaient bonnes elles ont disparues au profit de l'image apr défaut. Je n'avoue pas bien comprendre ce qu'il se passe. Dans les logs a priori je ne vois pas d'erreur et toutes mes images sont bien chargée. Quote Link to comment Share on other sites More sharing options...
visje Posted June 10, 2010 Share Posted June 10, 2010 Par rapport au problème que j'ai soulevé plus haut, j'ai essayé le code donné par neoakira et il ya toujours le même soucis. Certaines images s'affiche et pas d'autres ... le problème c'est que les photos prises par la caméra font parti des images qui ne s'affichent pas -_- ... Quote Link to comment Share on other sites More sharing options...
neoakira Posted June 10, 2010 Author Share Posted June 10, 2010 souvent la BitmapFactory foire, il y a pas vraiment de doc la dessus mais ça utilise skia qui a des soucis, dans logcat tu doit avoir un message d'erreur avec SKIA dedans http://code.google.com/p/skia/ sur IRC le problème revient souvant... Quote Link to comment Share on other sites More sharing options...
Ermal Posted August 22, 2013 Share Posted August 22, 2013 (edited) Salut tous le monde Dsl mais j'ai recopié tous le tuto, je n'ai pas d'erreur dans mon code, mais rien ne s'affiche. Je test grâce à un Log la grandeur de mlistFiles, il m'indique que c 0. Serai-se possible que le chemin d’accès "/sdcard/dcim/camera" ne soit pas le bon??? Quelqu'un peux m'aider???? merci :-) Oups :-) DSl Je sais pk lol j'avais mal écris le chemin d’accès hihihi Edited August 22, 2013 by Ermal Quote Link to comment Share on other sites More sharing options...
chpil Posted August 23, 2013 Share Posted August 23, 2013 Le "tuto" t'a induit en erreur, il ne faut jamais mettre en dur dans ton code le chemin d'accès à la carte externe (ce chemin n'est pas forcément le même sur tous les smartphones). Il existe une méthode à appeler pour récupérer ce chemin, et ça rend ton application portable et indépendante de ton smartphone Par ex.: File extDir = Environment.getExternalStorageDirectory(); mListFiles = new File(extDir, "dcim").listFiles(); Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.