我想用相机拍摄图像并将其保存到图片文件夹中...我唯一无法解决的问题是为什么我的图像以小尺寸保存...
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, TAKE_PICTURE);
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturned) {
super.onActivityResult(requestCode, resultCode, imageReturned);
switch(requestCode) {
case TAKE_PICTURE:
if(resultCode == RESULT_OK)
{
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, bytes);
File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+ File.separator + "test3.png");
try {
f.createNewFile();
//write the bytes in file
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.flush();
// remember close de FileOutput
fo.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
答案 0 :(得分:8)
您应该考虑阅读文档:
http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE
它总是会给你一个较小的图像,除非你设置它给你全尺寸:
调用者可以传递额外的EXTRA_OUTPUT来控制此图像的位置 将写。如果EXTRA_OUTPUT不存在,则小 size图像作为额外字段中的Bitmap对象返回。这是 适用于只需要小图像的应用程序。如果 存在EXTRA_OUTPUT,然后将写入全尺寸图像 EXTRA_OUTPUT的Uri值。