【问题标题】:Android list all images availableAndroid 列出所有可用的图像
【发布时间】:2011-03-02 12:27:26
【问题描述】:

我正在制作一个应用程序,要求我列出手机 SD 卡上所有可用的图像。

我尝试查询 ContentResolver 方式,即

Cursor image = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI, new String[]{Images.Media._ID,Images.Media.DATA,Images.Media.DISPLAY_NAME}, null, null, null);

但没有任何结果。

有什么方法可以获取列表,或者如果这不可能,那么是否有任何可能的意图(例如 PICK)允许用户选择一个文件,然后访问用户选择的文件的路径? ?

【问题讨论】:

    标签: android list image android-cursor


    【解决方案1】:

    您可以使用图库活动来选择图像,如下所示:

    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_IMAGE);
    

    在活动的回调中,文件 uri 将在意图参数中

    【讨论】:

      【解决方案2】:
      //where contextObject is your activity
      ContentResolver cr = contextObject.getContentResolver();
      
      String[] columns = new String[] {
                      ImageColumns._ID,
                      ImageColumns.TITLE,
                      ImageColumns.DATA,
                      ImageColumns.MIME_TYPE,
                      ImageColumns.SIZE };
      cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                      columns, null, null, null);
      

      我的代码和你的很像(除了分解),而且它可以工作。你不需要去向 Gallery Intent 询问东西,它应该可以工作。我的两个猜测是:

      1) 确保您的 USB 存储设备未安装,如果是,您将看不到任何外部图像。

      2) 可能是权限问题?尝试添加 GLOBAL_SEARCH 权限,看看是否有帮助。

      【讨论】:

        猜你喜欢
        • 2013-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 1970-01-01
        相关资源
        最近更新 更多