似乎有几种不同的方法可以从手机的存储中获取位图。
我正在使用 MediaStore 查询从所有图像中读取数据,并将路径和 imageId 都保存在内存中。稍后,如果我想上传图片的小缩略图,我可以:
1)根据图像ID查询媒体存储以获取微型/迷你缩略图,然后从中创建一个缩放位图以满足我的确切需求(如果微型/迷你尺寸不正确)
Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail(context.getContentResolver(), imageId, MediaStore.Images.Thumbnails.MINI_KIND, null);
Bitmap.createScaledBitmap(bm, (int)newWidth, (int)newHeight, true);
或者
2)从文件位置获取位图,然后从中创建一个缩放位图
Bitmap bitmap = BitmapFactory.decodeFile(url);
Bitmap.createScaledBitmap(bitmap, (int)newWidth, (int)newHeight, true);
我最初是在做#1,因为我认为从媒体存储中生成缩略图会很快,这将使 createScaledBitmap 过程更快地完成,而不是从全尺寸图像创建缩放位图。有没有最好的方法或者这种差异完全可以忽略不计?