我正在开发一个功能,从网络服务器下载图像,将其显示在屏幕上,如果用户希望保留图像,请将其保存在特定文件夹中的 SD 卡上。有没有一种简单的方法来获取位图并将其保存到我选择的文件夹中的 SD 卡中?
我的问题是我可以下载图像,将其作为位图显示在屏幕上。我能够找到将图像保存到特定文件夹的唯一方法是使用 FileOutputStream,但这需要一个字节数组。我不确定如何将位图转换为字节数组(如果这是正确的方法),因此我可以使用 FileOutputStream 来写入数据。
我的另一个选择是使用 MediaStore :
MediaStore.Images.Media.insertImage(getContentResolver(), bm, barcodeNumber + ".jpg Card Image", barcodeNumber + ".jpg Card Image");
可以很好地保存到 SD 卡,但不允许您自定义文件夹。
try (FileOutputStream out = new FileOutputStream(filename)) { bmp.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance // PNG is a lossless format, the compression factor (100) is ignored } catch (IOException e) { e.printStackTrace(); }