2014-04-13 2 views
2

사용자가 갤러리에서 이미지를 선택하도록 허용하려면 , 예를 들어 10 분 전에 (예 : 시간 생성 메타 데이터를 사용하여) 이미지 만 찍었 으면합니다. 내가 10 분 전 촬영 한 이미지를 필요로하지만10 분 전에 android gallery에서 찍은 이미지를 표시하는 방법?

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

:

이미지를 갤러리를 열고 선택하는 방법의 예이 있습니다.

누구나 아이디어가 있습니까?

답변

2

내가 틀렸을 수도 있지만 Intent.ACTION_PICKGallery에 사용하면이 문제를 직접 해결할 수 있다고 생각하지 않습니다. 제 생각에는 과 Cursor의 가능한 방법은 in this answer입니다. 그러나, 나는 그것을 할 올바른 방법을 찾지 못했습니다.

그런 다음 해결 방법을 시도 할 수 있습니다. 앱에 자신의 Gallery을 만듭니다. Camera 폴더의 모든 사진을 선택하고 걸러 내고 x 분 전에 자신의 Gallery - 간단하게 GridView으로 찍은 사진 만 표시하십시오. var의 초기화

  • :

    // FileArray 
    private File[] aFile; 
    // ArrayList 
    private ArrayList<String> aImagePath = new ArrayList<String>(); 
    
  • DCIM Camera 폴더 가져 오기 :

    File fPath = new File(Environment 
           .getExternalStorageDirectory().toString() + "/DCIM/Camera"); 
    
  • FileArray 만들기를하고있는 파일을 나열 난이 쉽게 할 수있을 것 같아요 이 폴더 :

    각 파일에 대해
  • , ArrayList<String> 마지막으로 수정 한 날짜를 얻을 웁니다

    for(int i=0; i < aFile.length; i++) { 
        long lastDate = aFile[i].lastModified(); // get last modified date 
        long nowTime = nDate.getTime(); // get the current time to compare 
        if(nowTime - lastDate < 600*1000) { // if less than 10 min 
         String pathFile = aFile[i].getPath(); 
         aImagePath.add(pathFile); // populate the Array 
        } 
    } 
    
  • 마지막으로
  • , 첫 번째 장소에서 가장 최근의 사진을 위해 Array을 반대하고이를 표시 :

    if(aImagePath.size() != 0) { 
        Collections.reverse(aImagePath); // reverse the Array 
    
        // Call an AsyncTask to create and retrieve each Bitmap 
        // then, in onPostExecute(), populate the Adapter of the GridView 
    } else { 
        // No pictures taken 10 min ago! 
    } 
    

실제로 AsyncTask에서 메모리를 절약하기 위해 Bitmap 옵션을 처리해야합니다. GridView에 있으며 Fragment으로 잘 작동합니다. 당신은 내가 위에서 사용 된 참조를 찾을 수 있습니다

어쩌면 누군가가 더 나은 솔루션을 가지고 있지만, 위의 트릭 만 표시를하지 10 분 전에 찍은 이미지가 Camera의 장치로 찍혔습니다. 이게 당신을 도울 수 있기를 바랍니다.

+0

일부 카메라는 DCIM/100MEDIA 일부 DCIM/카메라 폴더에 카메라의 사진을 저장하지 않습니다 ... – Pedram

+0

대답에서 내 사진 갤러리 응용 프로그램을 시작합니다;) –

+0

희망 이것은 당신을 도와 줄 것입니다, @ NicolasManzini. 그러나 Pedram이 말했듯이, 폴더 선택에주의하십시오. 모든 기기에서 동일하지는 않습니다. – Fllo

관련 문제