【问题标题】:images,sdcard,android图片,SD卡,安卓
【发布时间】:2023-04-05 08:57:01
【问题描述】:

我想编写代码以仅显示来自特定的图像 SD卡中的文件夹。例如一个名为 (/sdcard/folder/) 的文件夹。 我有以下代码,但它显示了 SD卡。我应该在以下代码中添加/更改什么以完成 我的目标。

我应该更改查询吗?如果是,我应该如何更改。

请帮助我。 谢谢

`

      String[] img = { MediaStore.Images.Thumbnails._ID };
      imagecursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, img, null,null, MediaStore.Images.Thumbnails.IMAGE_ID + "");
      image_column_index = imagecursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
      count = imagecursor.getCount(); 
      imagegrid = (GridView) findViewById(R.id.sdcard);
      imagegrid.setAdapter(new ImageAdapter(getApplicationContext()));
      imagegrid.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView parent, View v,int position, long id) {
                  System.gc();
                  String[] proj = { MediaStore.Images.Media.DATA };
                  actualimagecursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj,null, null, null);
                  actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                  actualimagecursor.moveToPosition(position);
                  String i = actualimagecursor.getString(actual_image_column_index);
                  System.gc();
                 Intent intent = new Intent(getApplicationContext(), ViewImage.class);
                  intent.putExtra("filename", i);
                  startActivity(intent);
            }
      });
`  

【问题讨论】:

    标签: android image directory sd-card


    【解决方案1】:
    imagecursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, img, null,null, MediaStore.Images.Thumbnails.IMAGE_ID + "");
    

    在上面一行,你只是传递了你的 SD 卡路径(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI)。我会建议为您的路径(card/newfolder/)创建变量并将其传递给 managedQuery

    试试这个问题的答案Using ImageGallery to display images from the SD card?

    【讨论】:

    • 感谢您的回复。我创建了一个变量 path=Environment.getExternalStorageDirectory().toString() + "/folder";。我现在应该如何编写查询?请帮我解决这个问题.
    • 你的路径是Uri类型的吗?如果是,只需在 managedQuery 方法中替换它即可。
    • 我在这一行得到 NullPointerException image_column_index = imagecursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
    【解决方案2】:
    File folder = new File("/sdcard/images/");
    File[] allFiles = folder.list();
    //allFiles array contains the files in that folder
    

    解析文件并得到你想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 2017-08-30
      • 2016-01-13
      • 1970-01-01
      相关资源
      最近更新 更多