我使用了此页面:http://developer.android.com/guide/topics/media/camera.html
要了解如何使用现有的相机应用拍摄照片&返回我的应用程序的结果。
有时图像会保存,有时则不会。我正在测试三星Galaxy平板电脑(8.9)。如果我将分辨率保持在最高设置(2048x1536)&以肖像拍摄照片,图像永不保存。如果我拍摄横向照片,图像可以节省大部分时间。如果我将其缩小到1024x768,图像可以节省大部分时间(无论是纵向还是横向)。
寻找方向来解决这个问题。
private void startCameraForCapture() {
// create Intent to take a picture and return control to the calling application
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
try {
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE, getApplicationContext()); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
} catch (Exception e) {
// TODO Auto-generated catch block
_errorMessageTitle = "Error 'StartCamera'";
_errorMessage = "Error: " + e.toString();
showDialog(DIALOG_ERROR_GENERAL);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
showPhoto(2);
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
_errorMessageTitle = "Error in 'Take Photo'";
_errorMessage = "Image Capture Failed";
showDialog(DIALOG_NOTICE_GENERAL);
}
}
if (requestCode == CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), "Video not yet supported", Toast.LENGTH_LONG).show();
// Video captured and saved to fileUri specified in the Intent
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the video capture
} else {
// Video capture failed, advise user
}
}
}
答案 0 :(得分:0)
对不起,应该已经解决了这一段时间。问题是我是Android的菜鸟。
在OnCreate方法中,我有一个函数正在删除Temp文件夹中的文件,我用来存储照片中的图像(我在OnCreate中添加了用于清理的目的)。
我发现当方向发生变化时会再次调用OnCreate。
在某些三星设备上,相机将屏幕从纵向(这是我在我的应用中允许的唯一方向)旋转到横向。
拍摄照片时,根据用户是否在选择“保存图像”之前旋转设备,方向会发生变化。
由于方向正在改变,我正在调用用于删除临时文件的函数。我弄清楚之后感到非常愚蠢。