第1种:采取系统的api直接使用:
ContentResolver cr = getContentResolver();
String url = MediaStore.Images.Media.insertImage(cr, bmp,
String.valueOf(System.currentTimeMillis()), "");
但是,这类方式必须得刷新图库:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
虽然如此,这类方法还是只能合适安卓4.4以下的手机,若是4.4以上的手机就会报错,因此建议采取第2种方式来写;
第2种:直接采取文件流进行保存到相册
File tempFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/"
+ String.valueOf(System.currentTimeMillis()) + ".png");
if(tempFile.exists()){
tempFile.delete();
}
try {
tempFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
FileOutputStream fOut = null;
try {
fOut = new FileOutputStream(tempFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
bmp.compress(Bitmap.CompressFormat.PNG, 100, fOut);
try {
fOut.flush();
fOut.close();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
最后把全部方法贴出来:
/**
*
------分隔线----------------------------
------分隔线----------------------------