从照片库中选择一张随机图片

时间:2014-10-24 18:00:02

标签: java android random image-gallery

我需要从用户的照片库中随机选择一张图片。

我并不是指在以下情况下启动意图:

Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(gallery, GALLERY_PHOTO_REQUEST_CODE);

2 个答案:

答案 0 :(得分:1)

我会这样做,但我不认为我可以选择所有画廊照片,我认为这是不可能的

File picturesDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File[] listFiles = picturesDirectory.listFiles();
Random r = new Random();
File randomPicture = listFiles[r.nextInt(listFiles.length)];
Uri pictureUri = Uri.fromFile(randomPicture);

然后您可以使用该Uri(或File)对象来执行操作,例如将其加载到imageView中:mImageView.setImageUri(pictureUri);

希望这会有所帮助!我记得你不会选择所有图片而只选择存储在该文件夹中的图片。事实上,许多应用程序将其图片保存在其他可能无法访问的个人文件夹中。

答案 1 :(得分:0)

使用它来获取所有图像,然后使用Java Random类随机选择数组的索引。一旦你有了,你可以请求特定的图像。

    //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);

here获取的代码示例。