您的位置:首页 > 移动开发 > Android开发

Android—将Bitmap图片保存到SD卡目录下或者指定目录

2016-03-13 00:17 555 查看
直接上代码就不废话啦

一:保存到SD卡下

File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");
try {
out = new FileOutputStream(file);
btImage.compress(Bitmap.CompressFormat.JPEG, 90, out);
System.out.println("___________保存的__sd___下_______________________");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(HahItemActivity.this,"保存已经至"+Environment.getExternalStorageDirectory()+"下", Toast.LENGTH_SHORT).show();
}
上面的方法就是 直接定义一个文件的路径,和图片的名称,然后保存.

二:保存Bitmap到指定的SD卡文件夹目录下

想想也知道,这个必须先有个文件夹,才能把图片保存这里面,那就按照思路学代码吧

if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) // 判断是否可以对SDcard进行操作
{	  // 获取SDCard指定目录下
String  sdCardDir = Environment.getExternalStorageDirectory()+ "/CoolImage/";
File dirFile  = new File(sdCardDir);  //目录转化成文件夹
if (!dirFile .exists()) {				//如果不存在,那就建立这个文件夹
dirFile .mkdirs();
}							//文件夹有啦,就可以保存图片啦
File file = new File(sdCardDir, System.currentTimeMillis()+".jpg");// 在SDcard的目录下创建图片文,以当前时间为其命名

try {
out = new FileOutputStream(file);
btImage.compress(Bitmap.CompressFormat.JPEG, 90, out);
System.out.println("_________保存到____sd______指定目录文件夹下____________________");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(HahItemActivity.this,"保存已经至"+Environment.getExternalStorageDirectory()+"/CoolImage/"+"目录文件夹下", Toast.LENGTH_SHORT).show();
}


注:访问权限注意哦

<!-- 安卓读写sd权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>


关于图片的  SD卡的 

未完   待续
//将Bitmap图片保存到sd卡

protected void saveBitmapToSD(Bitmap bt) {
File path = Environment.getExternalStorageDirectory();
File file = new File(path, System.currentTimeMillis() + ".jpg");
System.out.println(Environment.getExternalStorageState() + "/Cool/" +"000000000000000000000000000");
try {
FileOutputStream out = new FileOutputStream(file);
bt.compress(Bitmap.CompressFormat.JPEG, 90, out);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
out.flush();
out.close();
}

/**
* 保存bitmap到SD卡
* @param bitName 保存的名字
* @param mBitmap 图片对像
* return 生成压缩图片后的图片路径
*/
public static String saveMyBitmap(String bitName,Bitmap mBitmap) {
File f = new File("/sdcard/" + bitName + ".png");
try {
f.createNewFile();
} catch (IOException e) {
System.out.println("在保存图片时出错:" + e.toString());
}
FileOutputStream fOut = null;
try {
fOut = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
} catch (Exception e) {
return "create_bitmap_error";
}
try {
fOut.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.close();
} catch (IOException e) {
e.printStackTrace();
}

return "/sdcard/" + bitName + ".png";
}

/**
* 保存bitmap到SD卡
* @param bitmap
* @param imagename
*/
public static String saveBitmapToSDCard(Bitmap bitmap, String imagename) {
String path = "/sdcard/" + "img-" + imagename + ".jpg";
FileOutputStream fos = null;
try {
fos = new FileOutputStream(path);
if (fos != null) {
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.close();
}

return path;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: