Je veux remplir mon recyclerview avec petit (60x60) bitmap d'art d'album, mais je ne peux pas sembler l'obtenir. J'ai essayé tout ce que je savais, aidez s'il vous plaît.decodeStream ne remplit pas recyclerView avec l'image bitmap
Le code que je utilise pour réduire les images:
public static int calculateSize(BitmapFactory.Options opt, int reqHeight, int reqWidth){
int height = opt.outHeight;
int width = opt.outWidth;
int inSampleSize = 1;
if(height > reqHeight || width > reqWidth){
final int halfWidth = width/2;
final int halfHeight = height /2;
while((halfHeight/inSampleSize) >= reqHeight && (halfWidth/inSampleSize) >= reqWidth){
inSampleSize *= 2;
}
}
return inSampleSize;
}
public Bitmap decodeSampleBitmapFromArray(InputStream stream, Rect rect, int reqHeight, int reqWidth){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bit = BitmapFactory.decodeStream(stream, rect, options);
//Calculate sample size
options.inSampleSize = calculateSize(options, reqHeight, reqWidth);
//Decode bitmap with insamplesize set false
options.inJustDecodeBounds = false;
return bit;
}
Alors j'appelle la fonction decodeSampleBitmapFromArray dans ma méthode onCreate pour remplir mon adaptateur recyclerview:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
...
adapter = new CustomRecycler(paths);
recyclerView = (RecyclerView)v.findViewById(R.id.ryc);
lManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(lManager);
recyclerView.setHasFixedSize(true);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(adapter);
metaRetriever.setDataSource(path);
byte[] b = metaRetriever.getEmbeddedPicture();
if (b != null) {
InputStream in = new ByteArrayInputStream(b);
paths.add(decodeSampleBitmapFromArray(in,new Rect(-1,-1,1,1), 60, 60));
}else{
Bitmap altIcon = BitmapFactory.decodeResource(getResources(), R.drawable.beat);
paths.add(altIcon);
}
}
Mon RecyclerAdapter puis a reçu le bitmap et l'affiche en utilisant ImageView
holder.artImage.setImageBitmap(mImage.get(position));
Après faire tout cela, les images ne peuplent toujours pas le recyclerview. Qu'est-ce que je fais mal? Merci d'avance
CustomRecycler ne connaît que les chemins vides ... il n'était pas informer que le contenu avait changé – Selvin
Je l'ai dans mon projet, mais je l'ai omis par erreur lors de la publication de ce code. – DevMike
* les images ne peuplent toujours pas le recyclerview * est trompeur ... il est difficile de deviner s'il n'y a pas au moins des espaces réservés ou si les images ne sont pas en train de charger ... aussi je ne vois pas de code de débogage "bitmap is null" message) – Selvin