Android 往文件夹写入图片
我现在要实现个功能,就是把Android项目中的一个图片放入SD卡中指定的文件夹,请问怎么做呢。希望能写下代码让我也能借鉴下,不胜感激!...
我现在要实现个功能,就是把Android项目中的一个图片放入SD卡中指定的文件夹,请问怎么做呢。希望能写下代码让我也能借鉴下,不胜感激!
展开
2个回答
展开全部
步骤:
1、AndroidManifest.xml中配置SD卡写权限
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission>
2、java代码往SD卡写入图片信息
public static void saveBitmapToFile(Bitmap bitmap, String _file)
throws IOException {BufferedOutputStream os = null;
try {
File file = new File(_file); //新建图片
int end = _file.lastIndexOf(File.separator);
String _filePath = _file.substring(0, end); //获取图片路径
File filePath = new File(_filePath);
if (!filePath.exists()) { //如果文件夹不存在,创建文件夹
filePath.mkdirs();
}
file.createNewFile(); //创建图片文件
os = new BufferedOutputStream(new FileOutputStream(file));
bitmap.compress(Bitmap.CompressFormat.PNG, 100, os); //图片存成png格式。
} finally {
if (os != null) {
try {
os.close(); //关闭流
} catch (IOException e) {
Log.e(TAG_ERROR, e.getMessage(), e);
}
}
}
}
展开全部
String path = Environment.getExternalStorageDirectory().getPath();//获取手机本地存//储路径,这个位置可以根据需要自己改。
InputStream in = getResources().openRawResource(R.raw.girls);//读取程序中的图片
File file = new File(path + "/girls.jpg");//创建文件
if (!file.exists()) {
try {//如果文件不存在就创建文件,写入图片
file.createNewFile();
FileOutputStream fo = new FileOutputStream(file);
int read = in.read();
while (read != -1) {
fo.write(read);
read = in.read();
}
//关闭流
fo.flush();
fo.close();
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
希望可以帮到你,望采纳!
更多追问追答
追问
首先真的非常非常感谢你,写的很详细。但有点小问题,你的那个路径path获取的是手机相册的路径吧? 然后(path + “/girls.jpg”)是创造了一个装girls图片的文件夹么?
追答
下面这个语句就是创建一个file来找本地的文件,找不到的情况下就去创建刚刚目录里的文件夹,这个语句可能不太适合你的程序,你可以直接写创建文件夹的语句去写入图片,省去了if的判断,这个是我以前写的例子,可能没有注释很清楚~
File file = new File(path + "/girls.jpg");//创建文件
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询