Estou trabalhando com o Glide para pegar imagens das capas de músicas, mas demora muito para carregar as capas, conforme o usuário percorre a lista. Oque fazer para deixa elas mais rápido, é preciso salvá-las em cache?
Faz o resize dela.
Glide
.with(context)
.load(path)
.apply(new RequestOptions().override(600, 200))
.into(imageViewResizeCenterCrop);
1 curtida
Não funciona, ainda tem o mesmo erro, se eu rolar muito rápido a lista da uma travada, e as capas desaparecem e voltam depois de alguns segundos
Glide.
with(context)
.load(img)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(imgView)
Tenta assim entao
1 curtida
Não funciona também e é “RESOURCE” ali
Cara, qual versão do Glide você ta usando?
1 curtida
4.11.0
Mostra o código q vc fez.
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
holder.file_name.setText(mFiles.get(position).getTitle());
// holder.album_art.setImageResource(mFiles.get(position).getAlbum());
// Bitmap image = getAlbumArt(mFiles.get(position).getPatch());
// byte[] image = getAlbumArt(mFiles.get(position).getPatch());
Bitmap image = getAlbumArtFromMP3File(mFiles.get(position).getPatch());
//Bitmap image = getddd(mFiles.get(position).getPatch());
if (image != null) {
Glide.with(mContext).asBitmap()
.load(image)
.into(holder.album_art)
;
} else {
Glide.with(mContext)
.load(R.drawable.img_music)
.into(holder.album_art);
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, PlayerActivity.class);
intent.putExtra("position", position);
mContext.startActivity(intent);
}
});
private static Bitmap getAlbumArtFromMP3File(String path) {
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(path);
byte[] art = retriever.getEmbeddedPicture();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
if (art != null) {
bitmap= BitmapFactory.decodeByteArray(art, 0, art.length, options);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
retriever.release();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return bitmap;
}