我需要从用户的照片库中随机选择一张图片。
我并不是指在以下情况下启动意图:
Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(gallery, GALLERY_PHOTO_REQUEST_CODE);
答案 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获取的代码示例。