2014-02-15 204 views
1

我需要從用戶的照片庫中隨機選擇一張圖片。我的意思不是開始的意圖在如何從照片庫中隨機選擇一張圖片

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

號我需要隨機選擇圖像我自己。有沒有一種有效的方法來做到這一點?或者我必須真正閱讀所有的圖像文件,然後隨機選擇一個文件,然後從文件中獲取圖像?通過閱讀所有的文件,我的意思的東西爲(段:我有一個問題沒有回答)

void addFiles(final File parent, Set<File> images) { 
     try { 
      for (final File file : parent.listFiles()) { 
       if (!file.getParent().contains("Android")) { 

        if (!file.isDirectory()) { 
         if (isImageFile(file.getName())) { 
          images.add(file); 
         } 
        } else { 
         addFiles(file, images); 
        } 
       } 
      } 
     } catch (Exception e) { 
     } 
    } 

請不要太在意的代碼片段。如果我知道最好的方法,我不會尋求幫助。有誰知道這樣做的有效方式?

回答

0

我不知道你的代碼,除了片段。除非你有大量的文件,否則你可以很好地將所有文件讀入數組。然後生成一個隨機數,其中0表示最低值,arrayList.size() - 1表示最高值,並從數組中獲得該索引。

僞代碼:

private static Random random = new Random(); 

ArrayList<File> list = readFiles(); 
File randomFile = list.get(getRandomValue(0, list.size()-1)); 
... 

public static int getRandomValue(int low, int high) { 

    return random.nextInt((high - low) + 1) + low; 

} 
相關問題