MediaStore.Images.Media.getBitmap需要太多时间

时间:2019-02-11 09:50:18

标签: android android-bitmap android-cursor vision-api

我想检查外部存储设备中的照片中是否至少有一张人脸。

我这样查询外部内容:

bind(c)

获取尿液需要0.004秒

   queryTimeTaken += measureTimeMillis {
        try {
            cursor = context.contentResolver.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection,
                null,
                null,
                sortOrderAndFetchLimit
            )
        } catch (e: Exception) {
            println("Error when executing query(): $e")
        }
    }

getBitmap()需要太多时间。大约需要10秒钟。

getUriTimeTaken += measureTimeMillis {
    uri = ContentUris.withAppendedId(
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, cursor.getInt(cursor.getColumnIndex(MediaStore.Images.ImageColumns._ID)).toLong())

}

getBitmap()占用了总时间的90%,因此这是一个瓶颈。 我可以做些什么来使其更快?

1 个答案:

答案 0 :(得分:0)

我使用缩略图代替了全尺寸图像,并且比以前更快。