【问题标题】:Picking a picture either from photos or multimedia, but not by recent images从照片或多媒体中挑选图片,而不是从最近的图像中挑选图片
【发布时间】:2017-12-09 16:35:42
【问题描述】:

我想挑类似whatsapp的图片:

代码:

   public void pickImage()
    {
        if (Build.VERSION.SDK_INT <19)
        {
            Intent pickPhoto = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);


            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE);
        } else {
            Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("image/*");
            startActivityForResult(intent, KITKAT_SELECT_PICTURE);

        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode != Activity.RESULT_OK) return;
        if (null == data) return;
        Uri originalUri = null;
        if (requestCode == SELECT_PICTURE)
        {
            originalUri = data.getData();
        }
        else if (requestCode == KITKAT_SELECT_PICTURE)
        {
            originalUri = data.getData();
            final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            // Check for the freshest data.
            getContentResolver().takePersistableUriPermission(originalUri, takeFlags);
        }
    }

问题:

上面可以选择图片,然后在imageview中正确显示图片。但是,在挑选过程中,它会将相机拍摄的照片(称为相册)和其他媒体中的照片打乱,并按最近的图像排序。

我怎样才能使它类似于whatsapp,从仅包含但所有从相机拍摄的图像的文件夹或包含所有其他多媒体的文件夹中选择图像,而不是最近添加的弄乱相机照片和多媒体图片?

谢谢。

【问题讨论】:

  • 您需要正确获取最近的路径,大多数情况下它会给出 null..
  • 我的意思是不按日期的顺序显示拣货页面,我希望它类似于whatsapp,无论是来自相机的图像,还是来自除相机之外的多媒体的其他图像?跨度>

标签: android image android-intent


【解决方案1】:

通过设置 DSC DATE_ADDED 字段的顺序使用 MediaStore.Images.Media.query 函数。您可以根据需要为内部/外部存储设置内容 URI。

【讨论】:

  • 我想把相机图片和其他多媒体图片分开,而不是把相机照片和多媒体图片按降序排列。
【解决方案2】:

试试这个希望,这将有助于我的问题在这段代码的帮助下得到解决..

Uri selectedImageURI = data.getData();
imageFile = new File(getRealPathFromURI(selectedImageURI));

和:

private String getRealPathFromURI(Uri contentURI) {
    String result;
    Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
    if (cursor == null) { // Source is Dropbox or other similar local file path
        result = contentURI.getPath();
    } else { 
        cursor.moveToFirst(); 
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
        result = cursor.getString(idx);
        cursor.close();
    }
    return result;
}

【讨论】:

  • 这会将相机图片与其他多媒体图片分开?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 2021-05-23
相关资源
最近更新 更多