2015-11-24 1 views
1

Je suis en train de générer une vignette forme une ressource d'image, en utilisant la méthode:extractThumbnail générer une erreur de configuration bitmap inconnue

ThumbnailUtils.extractThumbnail(Bitmap src, int width, int height); 

Mais quand je le fais, je reçois l'erreur:

java.lang.IllegalArgumentException: unknown bitmap configuration 

Voici mon code:

// get a scaled down version of the image resource, to avoid loading 
// the full image into memory 
Bitmap im1 = decodeSampledBitmapFromResource(context.getResources(), 
       R.drawable.im1, 
       R.dimen.thumbnail_width, 
       R.dimen.thumbnail_height); 

Bitmap thumbnail = ThumbnailUtils.extractThumbnail(im1, 
        R.dimen.thumbnail_width, 
        R.dimen.thumbnail_height); 

holder.picture.setImageBitmap(thumbnail); 

l'erreur apparaît sur la ligne où la méthode extractThumbnail est appelée.

La méthode decodeSampledBitmapFromResource est celle décrite ici: https://developer.android.com/intl/es/training/displaying-bitmaps/load-bitmap.html

L'image est une image "JPEG" de taille 680x1024, pondération 183Ko.

J'ai essayé d'utiliser plutôt la méthode:

Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter); 

mais je reçois la même erreur.

Répondre

2

Vous rencontrez peut-être des problèmes car vous transmettez les ID de vos ressources au lieu des valeurs réelles que ces ID représentent. Essayez d'ajouter

int height = (int)context.getResources().getDimension(R.dimen.thumbnail_height); 
int width = (int)context.getResources().getDimension(R.dimen.thumbnail_width); 

et modifiez maintenant votre code pour lire ceci.

// get a scaled down version of the image resource, to avoid loading 
// the full image into memory 
Bitmap im1 = decodeSampledBitmapFromResource(context.getResources(), 
       R.drawable.im1, 
       width, 
       height); 

Bitmap thumbnail = ThumbnailUtils.extractThumbnail(im1, 
        width, 
        height);