我能够从SD卡中选择所有存储桶的显示名称,现在我想从该存储桶中建立缩略图列表.我该如何实现?
来自Android的缩略图表没有任何可用于查询图像表的信息.我试图从MediaStore.Images.Media.EXTERNAL_CONTENT_URI获取缩略图ID,但是在这种情况下_ID与缩略图ID不同.
谢谢
Ť
解决方法:
我有同样的问题.图像和缩略图之间的共同值是图像ID,在图像中以_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:列出每个存储桶的缩略图全部内容,希望文章能够帮你解决Android:列出每个存储桶的缩略图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)