获取视频缩略图并在ListView中显示(仅适用于Android Genius)
我目前有一种方法可以从设备中获取所有视频并显示在获取视频缩略图并在ListView中显示(仅适用于Android Genius),android,listview,Android,Listview,我目前有一种方法可以从设备中获取所有视频并显示在列表视图中。目前,我仅显示相册名称和标题,其中包含缩略图的默认图像,该缩略图在列表视图的所有行中重复出现。这样做的方法是 try { mAdapter = new SimpleCursorAdapter( this, // Use a template that displays a text view R.layout.medi
列表视图中。目前,我仅显示相册名称和标题,其中包含缩略图的默认图像,该缩略图在列表视图的所有行中重复出现。这样做的方法是
try {
mAdapter = new SimpleCursorAdapter(
this,
// Use a template that displays a text view
R.layout.media_select_row,
null,
// Map from database columns...
new String[] {
MediaStore.Video.Media.ALBUM,
MediaStore.Video.Media.TITLE,
MediaStore.Video.Media._ID},
// To widget ids in the row layout...
new int[] {
R.id.row_album,
R.id.row_title,
R.id.row_icon,},
0);
setListAdapter(mAdapter);
getListView().setItemsCanFocus(true);
// Normal click - open the editor
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,
View view,
int position,
long id) {
Cursor c = mAdapter.getCursor();
int dataIndex = c.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
String filename = c.getString(dataIndex);
videoFilename = filename;
String substr = videoFilename.substring(videoFilename.length() - 3);
if(substr.equals("mp4")) {
if(callPath == 1) {
Intent intent = new Intent(DubVideoList.this, DubStudio.class);
intent.putExtra("videoPath", videoFilename);
startActivity(intent);
}else if(callPath == 2){
Intent intent = new Intent(DubVideoList.this, DubStudioBeta.class);
intent.putExtra("videoPath", videoFilename);
startActivity(intent);
}
}else{
Toast.makeText(DubVideoList.this,getString(R.string.mp4_support),Toast.LENGTH_LONG).show();
}
}
});
mInternalCursor = null;
mExternalCursor = null;
getLoaderManager().initLoader(INTERNAL_CURSOR_ID, null, this);
getLoaderManager().initLoader(EXTERNAL_CURSOR_ID, null, this);
} catch (SecurityException e) {
// No permission to retrieve video?
Log.e("SecurityError", e.toString());
// TODO error 1
} catch (IllegalArgumentException e) {
// No permission to retrieve video?
Log.e("IllegalArgument", e.toString());
// TODO error 2
}
mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if (view.getId() == R.id.row_icon) {
setSoundIconFromCursor((ImageView) view, cursor);
return true;
}
return false;
}
});
要获取缩略图,可以使用以下代码
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(video_path,
MediaStore.Images.Thumbnails.MINI_KIND);
使用此代码在listview中添加视频缩略图
方法:1
位图bMap=ThumbnailUtils.createVideo缩略图(“本地文件路径”,
MediaStore、视频、缩略图、迷你型);
MViewHolder.imageThumb.setImageBitmap(bMap)
方法:2
使用滑翔
编译'com.github.bumptech.glide:glide:3.7.0'
滑动
.与(上下文)
.load(Uri.fromFile(新文件(文件路径)))
.into(MViewHolder.imageThumb) 只是你必须通过视频url或路径获得缩略图。。。您可以将其放在Adapter getView()方法中,并显示该图像而不是默认图像我没有使用任何自定义的适配器。那我该怎么做呢?请给我一个合适的解决方案。我上面有我所有的代码。
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(video_path,
MediaStore.Images.Thumbnails.MINI_KIND);