package com.frank.kindergarten.camera;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.annotation.SuppressLint;
import android.content.Context;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.os.Environment;
import android.widget.Toast;
public class PhotoHandler implements PictureCallback {
private final Context context;
private String filename;
public PhotoHandler(Context context) {
this.context = context;
}
@SuppressLint("SimpleDateFormat")
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFileDir = getDir();
if (!pictureFileDir.exists() && !pictureFileDir.mkdirs()) {
Toast.makeText(context, "无法创建目录来保存图像。", Toast.LENGTH_LONG).show();
return;
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
String date = dateFormat.format(new Date());
String photoFile = "Picture_" + date + ".jpg";
filename = pictureFileDir.getPath() + File.separator + photoFile;
File pictureFile = new File(filename);
System.out.println("filename is " + filename);
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
Toast.makeText(context, "图片保存路径:" + photoFile, Toast.LENGTH_LONG)
.show();
mPath.getPicturePath(filename);
} catch (Exception error) {
Toast.makeText(context, "图片不能保存--------------------",
Toast.LENGTH_LONG).show();
}
}
savePath mPath;
public interface savePath {
void getPicturePath(String str);
}
public void setPath(savePath mPath) {
this.mPath = mPath;
}
private File getDir() {
File sdDir = Environment.getExternalStoragePublicDirectory("LBS_Test");
return new File(sdDir, "Picture_lbs");
}
}
提示空指针
http://www.2cto.com/kf/201407/321581.html
mPath 没有初始化,而且你定义一个空的接口方法,不知道是要干嘛。。。。
mPath你没有实例化。