gpt4 book ai didi

Android:列出每个存储桶的缩略图

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:18 25 4
gpt4 key购买 nike

我能够从我的 SD 卡中选择所有存储桶显示名称,现在我想从这个存储桶构建一个缩略图列表。我怎样才能做到这一点?

android 的缩略图表没有任何可用于查询图像表的信息。我试图从 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 获取缩略图 ID,但本例中的 _ID 与缩略图 ID 不同。

谢谢

最佳答案

我遇到了同样的问题。 Images 和 Thumbnails 之间的公共(public)值是图像 id,存储为图像中的 _id 和 image_id 缩略图。我最后做的是在图像表中查询属于存储桶的所有图像,然后在缩略图表中查询具有匹配 image_id 的所有缩略图。这是一些代码。

private void populateImages()
{
int[] imageIds = getImagesFromBucket();
String searchParams = null;
if(imageIds != null && imageIds.length > 0)
{
searchParams = "";
for(int i=0;i<imageIds.length;i++)
{
searchParams += "image_id = "+imageIds[i]+" OR ";
}
searchParams = searchParams.substring(0,searchParams.length() - 4);//cuts off the extra " OR "
}
String[] projection = {MediaStore.Images.Thumbnails._ID};
cursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection,
searchParams,
null,
MediaStore.Images.Thumbnails.IMAGE_ID);
//do something with the result here
}


private int[] getImagesFromBucket()
{
int[] ids = null;
ArrayList<Integer> lstIds = new ArrayList<Integer>();
String searchParams = null;
String bucket = getIntent().getExtras().getString("BucketName");
if(bucket != null && !bucket.equals("All"))
{
searchParams = "bucket_display_name = \""+bucket+"\"";
}
else
{
return ids;
}
String[] projection = {MediaStore.Images.Media._ID};
cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
searchParams,
null,null);
if(cursor.moveToFirst())
{
do
{
int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Media._ID));
lstIds.add(id);
}
while(cursor.moveToNext());
}
ids = new int[lstIds.size()];
for(int i=0;i<ids.length;i++)
{
ids[i] = (int)(lstIds.get(i));
}
return ids;
}

希望对你有帮助

关于Android:列出每个存储桶的缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8043093/

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