我正在尝试从连接到手机 (Nexus 6) 的 USB 驱动器导入选定的图像,该驱动器未将 pendrive 显示为外部存储目录。我使用了这个库:https ://github.com/mjdev/libaums 在使用这个库时,我必须首先将所有图像从 USB 复制到本地缓存,然后从那里我可以显示缩略图以选择要导入的内容。我做不想复制所有图像我只想获取缩略图并仅复制选定的图像。那么有什么方法可以从 USB 存储中获取缩略图。我觉得,ES文件资源管理器和其他资源管理器(无论哪个)都能够检测到usb pendrive,它们不是复制文件来显示缩略图。
问问题
1017 次
1 回答
0
是的你可以,
Bitmap getThumbnail(UsbFile file,int targetWidth,int targetHeight){
InputStream is = UsbFileStreamFactory.createBufferedInputStream(file,mSelectedDevice.getPartitions().get(0).getFileSystem());
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(is, null, options);
Boolean scaleByHeight = Math.abs(options.outHeight - targetHeight) >= Math.abs(options.outWidth - targetWidth);
if(options.outHeight * options.outWidth * 2 >= 200*200*2){
// Load, scaling to smallest power of 2 that'll get it <= desired dimensions
double sampleSize = scaleByHeight
? options.outHeight / targetHeight
: options.outWidth / targetWidth;
options.inSampleSize =
(int)Math.pow(2d, Math.floor(
Math.log(sampleSize)/Math.log(2d)));
}
// Do the actual decoding
options.inJustDecodeBounds = false;
// Let's load just the part of the image necessary for creating the thumbnail, not the whole image
Bitmap thumbnail = BitmapFactory.decodeStream(is, null, options);
return thumbnail;
}
现在有大量的开源工作可用。其中之一是支持 USB OTG 存储的 AnExplorer。查看AnExplorer
于 2017-03-03T07:16:19.533 回答