Aller au contenu

ImageChooser ...


Recommended Posts

Bonjour,

Je suis en train de réaliser une petite application permettant de manipuler les images.

J'ai essayé de réaliser un activity permettant de lister les images afin d'en sélectionner une pour la manipuler mais dès que le nombre d'image est trop important j'ai des problèmes de performance assez prononcés.

Je pourrais essayer de régler ces problèmes mais j'ai remarqué que certaines application avaient contournées ce problème en ouvrant un menu proposant des programmes faisant déjà ce travail.

4767555272_d1f8430c33.jpg

J'aime cette solution mais je tourne en rond sans trouver comment cela fonctionne.

J'ai essayé en utilisant

Intent i = new Intent( Intent.ACTION_ATTACH_DATA );   
startActivity( Intent.createChooser( i, "Select :" ) );

mais je pense être sur une mauvaise piste, donc si quelqu'un à la solution ou au moins une bonne piste je le remercie d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Si tu veux un exemple d'implémentation d'un image chooser "perso" (avec sélection multiple), tu peux toujours essayer de regarder ce que j'ai fait sur EmailAlbum :

http://code.google.com/p/emailalbum/source/browse/#svn/EmailAlbumAndroid/tags/REL-2_7_0/src/com/kg/emailalbum/mobile/creator

Les aspects performances sont effectivement assez délicats, alors je te conseille d'avoir une boite d'aspirine à portée de main ;-)

Lien vers le commentaire
Partager sur d’autres sites

et le plus important, dans le onActivityResult :

       else if (requestCode == REQUEST_CODE_SELECT_PICTURE)
       {
           if (resultCode == RESULT_OK)
           {
               Uri uri = data.getData();

               if (uri != null)
               {
                   try
                   {
                       Bitmap bm = BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri));

                       this.setBitmap(bm);
                   }
                   catch (FileNotFoundException e)
                   {
                       e.printStackTrace();
                   }
               }
           }
       }
   }

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Bonsoir Pierre87 :) ,

Je tente de faire un pick d'une image dans ma galerie et de l'afficher dans une ImageView en aperçu.

J'ai donc fait:

i = new Intent(Intent.ACTION_PICK);

i.setType(MediaStore.Images.Media.CONTENT_TYPE);

((ImageButton)findViewById(R.id.buttonMyspace)).setOnClickListener(new OnClickListener(){

public void onClick(View v) {

startActivityForResult(i, REQUEST_CODE_SELECT_PICTURE);

}

});

Ensuite:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == REQUEST_CODE_SELECT_PICTURE)

{

if (resultCode == RESULT_OK)

{

Uri uri = data.getData();

if (uri != null)

{

try

{

Bitmap bm = BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri));

ImageView face = ((ImageView)findViewById(R.id.profilpic));

face.setImageBitmap(bm);

}

catch (FileNotFoundException e)

{

e.printStackTrace();

}

}

}

}

}

Probléme:

J'ai testé sur le device, ça marche en déclaré mon ImageView à 100px en width et 100px en height MAIS le problème c'est que les images sont rectangulaires, il y a des "fermeture soudaine de l'application"sur quelques une, je ne sais pas trop pourquoi... Le top ce serait de choisir une zone carré dans l'image (comme sur l'app Twitter) et d'afficher toujours le même carré ou alors de forcer l'ImageView à afficher un carré. Vous savez comment on peut procéder?

Une autre question: Puis-je utiliser un ImageButton à la place de l'ImageView et modifier le drawableBackground au lieu de faire un setImage ? Si oui, quelle fonction faut-il utiliser?

Merci de m'éclairer,

Florent

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...