2011-11-28 2 views
3

Android 애플리케이션의 한 가지 활동으로 SD 카드, 카메라 사진, 다운로드 등 모든 사진을 휴대 전화에서 표시해야합니다. 코드로 어떻게 수행 할 수 있습니까? 의도 또는 다른 가능한 방법을 통해? (예를 들어 google + 응용 프로그램에서는 전화에서 모든 사진을 보여줍니다).휴대 전화 저장소의 모든 이미지를 내 응용 프로그램에 가져 오는 방법은 무엇입니까?

+0

https://github.com/amirarcane/recent-images –

답변

4

당신은 당신이 당신의 외부 저장 장치에있는 이미지의 경로를 얻을 수 위의 mCursor를 사용하여 콘텐츠를 해결

String[] mProjection = {MediaStore.Images.Media._ID, 
           MediaStore.Images.Media.DATA}; 

mCursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
           mProjection, 
           null, 
           null, 
           MediaStore.Images.Media.DEFAULT_SORT_ORDER); 

를 사용하여 콘텐츠 데이터베이스를 조회 할 필요가있다.

아마도 GridView이 필요하고 GridView의 어댑터는 이미지를 하나씩 가져 오기 위해 커서를 사용할 수 있습니다.

+0

이 필요한 모든 매니페스트의 허가 ??? –

+1

@Santhosh_pulliman 아니요 당신은 어떤 것도 필요가 없습니다. – MKJParekh

+0

이 코드 :( –

1

이 작업을 수행하는 가장 좋은 방법은 MediaStore.Images 콘텐츠 공급자를 사용하는 것입니다. 갤러리 앱에 표시되는 모든 이미지가 표시됩니다. 그러나 숨겨진 이미지 또는 .nomedia 파일이 포함 된 폴더의 이미지는 표시되지 않습니다. 그것들을 보여주고 싶다면 파일 시스템을 재귀 적으로 검사해야합니다 (이에 대해서는 File을보십시오).

+0

이 필요한 모든 매니페스트 권한을 실행할 때 나는. 나는 당신이 어떤 필요하다고 생각하지 않습니다 –

+0

을 상기 이미지의 경로를 가져올 수 없습니다 당신이 어떤 보안 예외를 얻을 경우, 당신은 그것을 시도하고 볼 수 . – Felix

+0

이에 대한 예는 도움이 될 것입니다. 'MediaStore.Images.Media.EXTERNAL_CONTENT_URI'은 직접 폴더 안에.주십시오하지 예는 파일 시스템을 스캔 반복적으로 사용하여 외부 SD 카드에있는 이미지를 보여줍니다. – Anuj

0

방금 ​​재고가있는 Android 갤러리 애플리케이션을 열고 싶습니까? 그렇지 않으면

, 당신은 항상이 미디어 스토어 MediaStore 클래스를 사용할 수 있습니다. 그것은 당신이 필요로하는 모든 정보를 가지고 있습니다. http://developer.android.com/reference/android/provider/MediaStore.html

+0

이 필요한 모든 매니페스트 허가 ??? –

+1

아니요, 당신이 sdcard를 읽는 중일뿐 아니라 sdcard에 글을 쓰는 것도 다른 이야기이지만, 귀하의 경우에는 그렇게하지 않으므로 괜찮습니다. –