【发布时间】:2014-02-11 07:13:17
【问题描述】:
我正在尝试将超过 10 个视频的缩略图从服务器获取到 Android 中的图像视图。现在我能够成功地将视频的缩略图显示到图像视图中,但我的问题是显示所有缩略图需要太多时间。所以它显示空白黑屏,直到它加载所有缩略图。
所以我决定使用显示进度条的 Asynctask,直到它加载所有缩略图,但它根本不显示进度条。所以知道如何解决这个问题。
代码
ImageView video_one, video_two, video_three, video_four, video_five;
ImageView video_six, video_seven, video_eight, video_nine, video_ten;
ImageView video_ele, video_twe, video_thir, video_fort, video_fif;
String path = "http://serverlink/Fidol/upload/test.mp4";
String path1 = "http://serverlink/Fidol/upload/ABCD.mp4";
String path2 = "http://serverlink/Fidol/upload/bean.mp4";
String path3 = "http://serverlink/Fidol/upload/masti.mp4";
String path4 = "http://serverlink/Fidol/upload/ben.mp4";
Bitmap bm = ThumbnailUtils.createVideoThumbnail(path,
MediaStore.Images.Thumbnails.MICRO_KIND);
Bitmap bm1 = ThumbnailUtils.createVideoThumbnail(path1,
MediaStore.Images.Thumbnails.MICRO_KIND);
Bitmap bm2 = ThumbnailUtils.createVideoThumbnail(path2,
MediaStore.Images.Thumbnails.MICRO_KIND);
Bitmap bm3 = ThumbnailUtils.createVideoThumbnail(path3,
MediaStore.Images.Thumbnails.MICRO_KIND);
Bitmap bm4 = ThumbnailUtils.createVideoThumbnail(path4,
MediaStore.Images.Thumbnails.MICRO_KIND);
然后我打了电话
new loadThumbnail().execute();
这是我的异步任务类
class loadThumbnail extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(ShowVideo.this);
pDialog.setMessage("Loading Videos... Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... args) {
video_one.setImageBitmap(bm);
video_two.setImageBitmap(bm1);
video_three.setImageBitmap(bm2);
video_four.setImageBitmap(bm3);
video_five.setImageBitmap(bm4);
video_six.setImageBitmap(bm);
video_seven.setImageBitmap(bm1);
video_eight.setImageBitmap(bm2);
video_nine.setImageBitmap(bm3);
video_ten.setImageBitmap(bm4);
video_ele.setImageBitmap(bm);
video_twe.setImageBitmap(bm1);
video_thir.setImageBitmap(bm2);
video_fort.setImageBitmap(bm3);
video_fif.setImageBitmap(bm4);
return null;
}
protected void onPostExecute(String file_url) {
pDialog.dismiss();
}
}
【问题讨论】:
-
对UIL使用延迟加载stackoverflow.com/questions/16789676/…
-
@Raghunandan,谢谢,但在这种情况下,我没有列表视图以及任何自定义类,我该如何使用您的答案,请帮忙。我只有几个图像视图,我想在其中显示视频缩略图,直到它加载它应该显示进度条。就是这样。
-
您无法从背景线程更新 ui,您在 doinbackground 中设置位图,这是不可能的。我认为最好使用列表视图。在链接中,您可以从服务器获取图像,您可以从 mediastore 获取图像
-
@Raghunandan,我可以用 gridview 代替 listview 吗???
-
是的,您可以使用类似于 listview 的 gridview
标签: android image android-asynctask imageview bitmapimage