На этом изображении показан текущий вывод, который перемешан и дублирован.
У меня есть пути к файлам mp3 в массиве arraylist. Я хочу извлечь из них миниатюры, он отлично работает с Первым кодом растрового изображения, но скорость извлечения составляетслишком медленно.
filterpath == путь к файлам MP3.
MEDIACOVER == Arraylist для хранения растровых изображений.
Версия Glide == com.github.bumptech.glide:glide: 4.8.0, я думаю, что это последняя версия Glide.
public class Main2Activity extends AppCompatActivity {
private ArrayAdapter<Bitmap> adp;
ListView lv;
ArrayList<String> path;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
path=new ArrayList<>();
lv=findViewById(R.id.chckimage);
Intent in=getIntent();
path=in.getStringArrayListExtra("path");
adp = new ArrayAdapter(Main2Activity.this,
android.R.layout.simple_list_item_1);
lv.setAdapter(adp);
loadArrayList(path);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
ImageView iv=findViewById(R.id.getting);
iv.setImageBitmap(adp.getItem(position));
Toast.makeText(Main2Activity.this, ""+adp.getItem(position),
Toast.LENGTH_LONG).show();
}
});
}
Now метод для загрузки изображений .....
public void loadArrayList(ArrayList<String> Path) {
try {
for(String temp:Path){
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(temp);
byte[] data = mmr.getEmbeddedPicture();
if (data != null) {
Glide.with(this)
.asBitmap()
.load(data)
.thumbnail(0.1f)
.apply(RequestOptions.circleCropTransform()) //------getting image in circle
.listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
adp.add(resource);
return true;
}
}).submit();
mmr.release();
}else{
//LOAD FROM DRAWABLE
}
}
} catch (Exception e){}
}
Здесь я использовал imageview дляпроверка теперь дает другие ошибки, такие как значения дубликатов, а также перетасовывается из их путей
Я хочу получить общее количество изображений из общего числа путей в массиве
Я получаю эти выходные данные, запустив то же приложение ...и размер массива путей только 5. Но он дает мне 10 растровых изображений с дубликатом каждого значения