2014-02-15 4 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; 

} 
관련 문제