急求!android问题!
capture.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "拍照!");
// 从照相机的image
mCamera.takePicture(null, null, mPicture);
Log.d(TAG, "进入图片处理。。。。");
// 进入图片处理阶段
Intent intent_Image = new Intent(MainActivity.this,
Image_Processing.class);
startActivity(intent_Image);
}
});
这段代码不能正常执行mCamera.takePicture(null, null, mPicture);!求大神指点迷津!方法如下:
private PictureCallback mPicture = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.d(TAG, "onPictureTaken");
try {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
data.length);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);// 向缓冲区压缩图片
WriteToSQL(bitmap, baos);
baos.close();
// 将图片写入数据库
Log.d(TAG, "写入数据库成功!");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
Log.d(TAG, "压缩图片完毕!");
if (pictureFile == null) {
Log.d(TAG,
"Error creating media file,check storage permissions");
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d(TAG, "File not found:" + e.getMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d(TAG, "Error in accessing file:" + e.getMessage());
}
// 拍照后重新预览
mCamera.stopPreview();
mCamera.startPreview();
}
};
本人新手,隐约觉着不是方法的事!是不是我的onClick那个地方写错了!求指点,很急,给老师做的项目!