我正在做一个功能,想要从网络服务器上下载图片,在屏幕上重新显示这个图片,如果用户希望保存图片,保存它倒SD卡的一个特定的文件夹中。有简单的方法可以保存位图,然后把它保存到SD卡的我选择的文件夹中么?
我的问题是我可以下载图片,在一个屏幕上显示成位图。我能想到的把图片保存到一个特定的文件夹的方法是使用FileOutputStream,但是这需要一个字节数组。我不知道怎么讲一个位图转换成字节数组(如果这是一个正确的方法),所以我用 Fileoutput流来写数据。
其他的方法,我是用MediaStore
MediaStore.Images.Media.insertImage(getContentResolver(), bm,barcodeNumber+ ".jpg Card Image", barcodeNumber+ ".jpg Card Image");
这个可以保存到SD卡,但是不允许用户自己指定文件夹。
无论什么帮助我都是非常感谢的。先谢谢你。
试试
{
FileOutputStream out = new FileOutputStream(filename);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
这是一个示例:
String path= Environment.getExternalStorageDirectory().toString();
OutputStream fOut= null;File file= new File(path, "FitnessGirl"+Contador+".jpg");
fOut= new FileOutputStream(file);
getImageBitmap(myurl).compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());
可以用String path= Environment.getExternalStorageDirectory().toString();这个获取主路径