android保存图片到本地
2015-12-22 11:18
375 查看
我将其写到了一个异步线程中:
class SaveImage extends AsyncTask<Void,Void,Void>{
@Override
protected Void doInBackground(Void... params) {
//保存到本地
FileOutputStream fos = null;
BufferedOutputStream bos = null;
ByteArrayOutputStream baos = null;
isUploading = true;
try{
baos = new ByteArrayOutputStream();
cutBitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] byteArray = baos.toByteArray();
// 将字节数组写入到刚创建的图片文件中
imgFile = new File(FileManager.getSaveFilesPath(),UUID.randomUUID().toString()+".png");
fos = new FileOutputStream(imgFile);
bos = new BufferedOutputStream(fos);
bos.write(byteArray);
}catch(Exception e){
showShortToast("图片上传失败");
}finally{
if(ValidateUtils.isNotNullObj(baos)) {
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(ValidateUtils.isNotNullObj(bos)) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(ValidateUtils.isNotNullObj(fos)) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
tvProgress.setVisibility(View.VISIBLE);
uploadingProgressView.setVisibility(View.VISIBLE);
}
}
class SaveImage extends AsyncTask<Void,Void,Void>{
@Override
protected Void doInBackground(Void... params) {
//保存到本地
FileOutputStream fos = null;
BufferedOutputStream bos = null;
ByteArrayOutputStream baos = null;
isUploading = true;
try{
baos = new ByteArrayOutputStream();
cutBitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] byteArray = baos.toByteArray();
// 将字节数组写入到刚创建的图片文件中
imgFile = new File(FileManager.getSaveFilesPath(),UUID.randomUUID().toString()+".png");
fos = new FileOutputStream(imgFile);
bos = new BufferedOutputStream(fos);
bos.write(byteArray);
}catch(Exception e){
showShortToast("图片上传失败");
}finally{
if(ValidateUtils.isNotNullObj(baos)) {
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(ValidateUtils.isNotNullObj(bos)) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(ValidateUtils.isNotNullObj(fos)) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
tvProgress.setVisibility(View.VISIBLE);
uploadingProgressView.setVisibility(View.VISIBLE);
}
}
相关文章推荐
- Android程序猿必看之《终端应用开发指南》
- Android学习之Android ViewPager引导页
- Android签名与认证原理
- 《Android群英传》读书笔记(10)第九章:Android系统信息与安全机制
- android异常:Consumer closed input channel or an error occurred. events
- Android中调用startActivity结果导致:java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}
- 打造Android一体式轮播广告条
- 【Android Studio初级学习】Android Studio如何发布APK
- android打开系统的应用
- Android中使用Handler引发的内存泄露
- 深入理解Android消息处理系统——Looper、Handler、Thread
- 【Android】解析Json对象,用自带json解析器
- Android之Dialog时间(分秒)对话框
- Android之自定义属性,format详解
- android Launcher Demo小结
- android的WiFi调试
- Android之Dialog时间(年月日)对话框
- Android源码编译整理总结
- Android PopupWindow全屏
- Android之LoaderManager的使用