ビデオを取得してグリッドビューに表示するアプリを作成しようとしています。すべてのビデオのサムネイルがグリッドビューに表示されるようになりました。ただし、私の問題は、私が使用している方法には多くの遅延があることです。グリッドビューをロードするには時間がかかり、スクロールしようとすると常に何らかの遅延が発生します。これは、すべてのビデオ サムネイルにビット マップを使用していることが原因であると考えられます。
これをより迅速かつスムーズにするために何ができるかを考えていました。私のコードは以下に掲載されています。
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;
}
ご協力いただきありがとうございます