7
votes

Sélectionnez Thumbnail dans la galerie Android

Je sais comment obtenir une photo de la galerie dans Android

 onActivityResult(int requestCode, int resultCode, Intent data)


5 commentaires

Dupliqué possible de Obtenez la vignette URI / chemin de l'image stockée dans la carte SD + Android


@Miromarkarian merci pour le lien. Mais je reçois des erreurs lorsque j'utilise bitmap bitmap = mediastore.images.Thumbnails.getthumbnail (getContResolver (), data.getdata (), mediastore.images.thumbnails.mini_kind, (bitmapfactory.options) null); . Comment puis-je modifier data.getdata () à un identifiant comme suggéré dans la réponse?


Essayez d'utiliser curseur s. C'est la deuxième solution que le gars là-bas a suggéré et il a été signalé qu'il fonctionnait mieux que l'option bitmap


@Miromarkarian La deuxième solution attend un long comme sélectionnéImageuri . Mais tout ce que j'ai, c'est data.getdata () . Comment puis-je obtenir / analyser l'ID?


Hé, avez-vous déjà compris? Je regarde le même problème ...


3 Réponses :


0
votes
String fn = ...; // file name
ContentResolver cr = ctx.getContentResolver();
Cursor c = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
           new String[]{
              BaseColumns._ID
           }, MediaColumns.DATA + "=?", new String[]{ fn }, null);
     if(c!=null) {
        try{
           if(c.moveToNext()) {
              long id = c.getLong(0);
              Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(cr, id, MediaStore.Images.Thumbnails.MINI_KIND, null);
           }
        }finally{
           c.close();
        }
     }

0 commentaires

0
votes

Si vous avez son curseur à la main, vous pouvez obtenir son identifiant comme,

Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(cursor, id, MediaStore.Images.Thumbnails.MINI_KIND, null);


0 commentaires

0
votes

Hey donc si tout le reste ne fonctionne pas pour vous ici est un moyen facile de faire votre propre vignette si vous avez le bitmap. Si vous ne savez pas comment charger le bitmap à partir de l'URI:

        final int THUMBNAIL_HEIGHT = 75;//48
        final int THUMBNAIL_WIDTH = 75;//66
        Float width  = new Float(bitmap.getWidth());
        Float height = new Float(bitmap.getHeight());
        Float ratio = width/height;
        bitmap = Bitmap.createScaledBitmap(bitmap, (int)(THUMBNAIL_HEIGHT*ratio), THUMBNAIL_HEIGHT, false);

        int padding = (THUMBNAIL_WIDTH - bitmap.getWidth())/2;
        image.setPadding(padding, padding, padding, padding);
        image.setBackgroundColor(0);
        image.setImageBitmap(bitmap);


0 commentaires