开发者社区> 问答> 正文

Android:获取图片位置

我正在寻找一种方法来查找SD卡上的图像,或者至少找到相机拍摄的图像。

理想的解决方案是获取图像的文件路径或URI的集合。我想您可以通过MediaStore做到这一点,但我不知道如何做到。

谢谢

展开
收起
Puppet 2020-01-23 12:53:59 379 0
1 条回答
写回答
取消 提交回答
  • 在查看了更多MediaStore示例之后,我想到了这一点,它就完成了工作。

    
    protected ArrayList<Uri> GetImageList(boolean getThumbs) 
    {       
        ArrayList<Uri> images = new ArrayList<Uri>();
        String columnType;  
        Uri contentType;                
        String[] columnNames;
    
        if (getThumbs)
        {
             columnType = MediaStore.Images.Thumbnails._ID;
             contentType = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
        }
        else
        {
            columnType = MediaStore.Images.Media._ID;
            contentType = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        }
    
        columnNames = new String[]{columnType};             
        Cursor cursor = managedQuery(contentType, columnNames, null, null, null);       
        int columnIndex = cursor.getColumnIndexOrThrow(columnType);
    
        for(int i = 0; i < cursor.getCount(); i++)
        {
            cursor.moveToPosition(i);
            int id = cursor.getInt(columnIndex);
            images.add(Uri.withAppendedPath(contentType, "" + id));
        }
    
        return images;
    }
    它返回sdcard上所有图像的Uri或所有图像的缩略图的Uri在查看了更多MediaStore示例之后,我想到了这一点,它就完成了工作。
    
    protected ArrayList<Uri> GetImageList(boolean getThumbs) 
    {       
        ArrayList<Uri> images = new ArrayList<Uri>();
        String columnType;  
        Uri contentType;                
        String[] columnNames;
    
        if (getThumbs)
        {
             columnType = MediaStore.Images.Thumbnails._ID;
             contentType = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
        }
        else
        {
            columnType = MediaStore.Images.Media._ID;
            contentType = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        }
    
        columnNames = new String[]{columnType};             
        Cursor cursor = managedQuery(contentType, columnNames, null, null, null);       
        int columnIndex = cursor.getColumnIndexOrThrow(columnType);
    
        for(int i = 0; i < cursor.getCount(); i++)
        {
            cursor.moveToPosition(i);
            int id = cursor.getInt(columnIndex);
            images.add(Uri.withAppendedPath(contentType, "" + id));
        }
    
        return images;
    }
    

    它返回sdcard上所有图像的Uri或所有图像的缩略图的Urivvv

    2020-01-23 12:54:28
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载