Android 애플리케이션의 한 가지 활동으로 SD 카드, 카메라 사진, 다운로드 등 모든 사진을 휴대 전화에서 표시해야합니다. 코드로 어떻게 수행 할 수 있습니까? 의도 또는 다른 가능한 방법을 통해? (예를 들어 google + 응용 프로그램에서는 전화에서 모든 사진을 보여줍니다).휴대 전화 저장소의 모든 이미지를 내 응용 프로그램에 가져 오는 방법은 무엇입니까?
답변
당신은 당신이 당신의 외부 저장 장치에있는 이미지의 경로를 얻을 수 위의 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
의 어댑터는 이미지를 하나씩 가져 오기 위해 커서를 사용할 수 있습니다.
이 작업을 수행하는 가장 좋은 방법은 MediaStore.Images
콘텐츠 공급자를 사용하는 것입니다. 갤러리 앱에 표시되는 모든 이미지가 표시됩니다. 그러나 숨겨진 이미지 또는 .nomedia
파일이 포함 된 폴더의 이미지는 표시되지 않습니다. 그것들을 보여주고 싶다면 파일 시스템을 재귀 적으로 검사해야합니다 (이에 대해서는 File
을보십시오).
방금 재고가있는 Android 갤러리 애플리케이션을 열고 싶습니까? 그렇지 않으면
, 당신은 항상이 미디어 스토어 MediaStore 클래스를 사용할 수 있습니다. 그것은 당신이 필요로하는 모든 정보를 가지고 있습니다. http://developer.android.com/reference/android/provider/MediaStore.html
이 필요한 모든 매니페스트 허가 ??? –
아니요, 당신이 sdcard를 읽는 중일뿐 아니라 sdcard에 글을 쓰는 것도 다른 이야기이지만, 귀하의 경우에는 그렇게하지 않으므로 괜찮습니다. –
https://github.com/amirarcane/recent-images –