Я пытаюсь создать приложение, которое снимает видео, а затем отображает видео в gridview. Я дошел до того, что все миниатюры видео отображаются в виде сетки, как должны. Однако моя проблема заключается в том, что метод, который я использую, имеет много времени задержки. Требуется некоторое время, чтобы загрузить gridview, и когда я пытаюсь прокрутить, всегда есть своего рода отставание. Скорее всего, это связано с тем, что я использую битовые карты для каждого видеоролика.Проблемы с использованием растровых изображений для эскизов
Мне было интересно, что я могу сделать, чтобы сделать это намного быстрее и плавнее. Мой код размещен ниже.
class VideoAdapter extends BaseAdapter {
Context context;
ArrayList<String> videopathlist;
Bitmap bmthumb;
VideoAdapter(Context c, ArrayList<String> filepathlist){
context = c;
videopathlist = new ArrayList<String>();
this.videopathlist.addAll(filepathlist);
Log.i(TAG, "" + videopathlist);
}
@Override
public int getCount() {
return videopathlist.size();
}
@Override
public Object getItem(int position) {
return videopathlist.get(position);
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int posiiton, View arg1, ViewGroup arg2) {
ImageView imageview = new ImageView(context);
bmthumb = ThumbnailUtils.createVideoThumbnail(videopathlist.get(posiiton), MediaStore.Video.Thumbnails.MINI_KIND);
if (bmthumb != null) {
Log.i(TAG1, "There is a thumbnail");
imageview.setImageBitmap(bmthumb);
} else {
Log.i(TAG1, "There is NOT a thumbnail");
}
imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageview.setLayoutParams(new GridView.LayoutParams(160, 160));
return imageview;
}
Спасибо за вашу помощь