package com.swifty.fillcolor.model;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Environment;
import com.swifty.fillcolor.util.L;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* Created by Swifty.Wang on 2015/8/4.
*/
public class SaveImageAsyn extends AsyncTask {
private OnSaveFinishListener onSaveFinishListener;
private String path;
private String name;
@Override
protected Object doInBackground(Object[] objects) {
Bitmap bmp = (Bitmap) objects[0];
path = Environment.getExternalStorageDirectory().getPath() + "/MyFCWorks/";
File dir = new File(path);
if (!dir.exists())
dir.mkdirs();
name = objects[1] + ".png";
File file = new File(dir, name);
FileOutputStream out = null;
try {
out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance
out.close();
return "SUCCESS";
} catch (Exception e) {
if (out != null) {
try {
out.close();
} catch (IOException e1) {
L.e(e1.getMessage());
}
}
L.e(e.getMessage());
return "FAILED";
}
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
if ("SUCCESS".equals(o)) {
if (onSaveFinishListener != null) {
onSaveFinishListener.onSaveFinish(path + name);
}
} else {
if (onSaveFinishListener != null) {
onSaveFinishListener.onSaveFinish(null);
}
}
}
public interface OnSaveFinishListener {
/**
* @param path if null save failed
*/
void onSaveFinish(String path);
}
public OnSaveFinishListener getOnSaveFinishListener() {
return onSaveFinishListener;
}
public void setOnSaveSuccessListener(OnSaveFinishListener onSaveFinishListener) {
this.onSaveFinishListener = onSaveFinishListener;
}
}