gpt4 book ai didi

android - 在 android 中使用图像和视频自定义图库以选择多个项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:20 26 4
gpt4 key购买 nike

我想创建一个自定义图库来显示 SD 卡中的所有图像和视频(以及持续时间)。我正在使用以下代码构建自定义图库

代码:

final String[] columns = { MediaStore.Images.Media.DATA ,MediaStore.Images.Media._ID};
final String orderBy = MediaStore.Images.Media.DATE_TAKEN;
Cursor imagecursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
null, orderBy + " DESC");

this.imageUrls = new ArrayList<String>();


for (int i = 0; i < imagecursor.getCount(); i++) {
imagecursor.moveToPosition(i);
int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);
imageUrls.add(imagecursor.getString(dataColumnIndex));

}
String[] parameters = { MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.SIZE, MediaStore.Video.Media.DURATION,
MediaStore.Video.Media.DATE_TAKEN,MediaStore.Video.Thumbnails.DATA};



Cursor videocursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
parameters, null, null, null);

for (int i = 0; i < videocursor.getCount(); i++) {
videocursor.moveToPosition(i);
imageUrls.add(videocursor.getString(videocursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA)));
}
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.stub_image)
.showImageForEmptyUri(R.drawable.image_for_empty_url)
.cacheInMemory()
.cacheOnDisc()
.build();

imageAdapter = new ImageAdapter(this, imageUrls);

从上面的代码我可以得到视频的路径,我怎样才能得到视频缩略图和视频时长。并在画廊中代表它

如果在带有视频和图像的自定义画廊的项目中有任何问题,请发布链接 我实际上想创建一个自定义画廊来选择多个图像和视频文件。我在谷歌搜索了很多我找到了自定义图片库但没有视频请帮助我解决这个问题。

最佳答案

您可以从具有多个选项选择选项的自定义 GridView 中汲取灵感。Github 中有一个开源项目。

https://github.com/paramvir-b/AndroidGridViewCompatLib

enter image description here

在这个例子中你需要改变

 imageView.setImageResource(mThumbIds[position]);

imageView.setImageURI(uri);// URI of Image from SD Card

 imageView.setImageBitmap(bitmap);

对于视频:-

Video Thumbnail is in the form of Bitmap so you can show in ImageView.
private Bitmap bmThumbnail;
private ImageView videoview = null;
bmThumbnail = ThumbnailUtils.createVideoThumbnail(PATH_OF_THE_VIDEO,Thumbnails.MICRO_KIND);
videoview.setImageBitmap(bmThumbnail);

获取持续时间:-

String[] proj = { MediaStore.Video.Media.DATA ,MediaStore.Video.Media.DURATION};
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
if (cursor == null)
return null;
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
int column_index_duration = cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION);
cursor.moveToFirst();
long duration= cursor.getInt(column_index_duration);
String videoPath= cursor.getString(column_index);

关于android - 在 android 中使用图像和视频自定义图库以选择多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com