package com.cundong.izhihu.task;
import java.io.FileNotFoundException;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.provider.MediaStore;
import android.text.TextUtils;
import de.keyboardsurfer.android.widget.crouton.Crouton;
import de.keyboardsurfer.android.widget.crouton.Style;
/**
* 类说明: 将图片保存至系统图库Task
*
* @date 2014-2-7
* @version 1.0
*/
public class ImageToGalleryTask extends MyAsyncTask<String, Void, String> {
private Activity mInstance;
public ImageToGalleryTask(Activity instance) {
mInstance = instance;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
Crouton.makeText(mInstance, "开始保存图片", Style.INFO).show();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if (!TextUtils.isEmpty(result) && result.equals("success")) {
Crouton.makeText(mInstance, "图片已保存至相册", Style.INFO).show();
} else {
Crouton.makeText(mInstance, "图片保存失败", Style.INFO).show();
}
}
@Override
protected String doInBackground(String... params) {
if (params.length == 0)
return null;
boolean result = saveImage2Gallery(mInstance, params[0]);
return result ? "success" : "fail";
}
/**
* 将图片保存至系统图库
*
* @param context
* @param imagePath
* @return
*/
private boolean saveImage2Gallery(Context context, String imagePath) {
boolean result = true;
try {
// 插入到系统图库
MediaStore.Images.Media.insertImage(context.getContentResolver(), imagePath, "title", "desc..");
// 通知图库更新
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + imagePath)));
} catch (FileNotFoundException e) {
e.printStackTrace();
result = false;
}
return result;
}
}