사진이 폴더 리스트와 폴더 안에있는 이미지 갯수를 가져오는 기능을 구현해보려고합니다.

 

폴더 리스트와 폴더 안에 있는 사진 갯수 샘플

    fun requestPicFolderList(context: Context): ArrayList<String> {
        val uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
        val projection = arrayOf(
            MediaStore.Images.Media.BUCKET_DISPLAY_NAME
        )
        val cursor = context.contentResolver.query(uri, projection, null, null, null)
        val folderMap: MutableMap<String, String> = TreeMap<String, String>()
        if (cursor != null) {
            while (cursor.moveToNext()) {
                val columnIndex = cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME)
                val folder = cursor.getString(columnIndex)
                try {
                    if (folderMap[folder] == null) folderMap[folder] = folder
                } catch (e: Exception) {

                }
            }
            cursor.close()
        }
        val folderList = java.util.ArrayList<String>(folderMap.values)
        return folderList
    }

폴더 리스트를 가져오는 기능입니다.

 

    override fun getFolderListWithCount(): Map<String, Int> {
        val uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
        val projection = arrayOf(
            MediaStore.Images.Media.BUCKET_DISPLAY_NAME
        )
        val cursor = context.contentResolver.query(uri, projection, null, null, null)
        val folderMap: MutableMap<String, Int> = TreeMap<String, Int>()
        if (cursor != null) {
            while (cursor.moveToNext()) {
                val columnIndex = cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME)
                val folder = cursor.getString(columnIndex)
                try {
                    if(folderMap[folder] == null) folderMap[folder] = 0

                    folderMap[folder] = folderMap.get(folder)!!.plus(1)
                } catch (e: Exception) {

                }
            }
            cursor.close()
        }
        return folderMap
    }

사진 폴더와 카운트를 추가한 기능입니다.

 

 

결론

폴더 리스트나 카운트를 추가하는 방법을 좀 더 좋은 방법으로 가져오는 방법이 있을 것 같은데 제 실력으론 아직 부족하네요.. 부족함을 느끼면서 앞으로 쿼리공부를 좀 해야겠다는 생각이 듭니다.

 

github.com/sarang628/MediaContentResolver

 

sarang628/MediaContentResolver

Contribute to sarang628/MediaContentResolver development by creating an account on GitHub.

github.com

 

+ Recent posts