我正在制作一个拍照的应用,然后切换到新的活动。这是执行此操作的函数:
public void takePhoto(View view){
final int REQUEST_IMAGE_CAPTURE = 1;
// open camera
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if(takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
// open "Enter Info" screen
startActivity(new Intent(MainActivity.this, EnterInfoActivity.class));
}
但是,“输入信息”活动会在相机前打开。我想在开始新活动之前打开相机。按“后退”将我带到相机,对我来说这意味着相机确实加载了,但活动的优先级更高。
答案 0 :(得分:1)
private void captureImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
}
in onActivityResult Open Your Second Activity
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// if the result is capturing Image
if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// successfully captured the image
// display it in image view
previewCapturedImage();
} else if (resultCode == RESULT_CANCELED) {
// user cancelled Image capture
Toast.makeText(getApplicationContext(),
"User cancelled image capture", Toast.LENGTH_SHORT)
.show();
} else {
// failed to capture image
Toast.makeText(getApplicationContext(),
"Sorry! Failed to capture image", Toast.LENGTH_SHORT)
.show();
}
}
}
moew info请参阅此http://www.androidhive.info/2013/09/android-working-with-camera-api/
答案 1 :(得分:1)
正如我所看到的,您正在使用startActivityForResult来启动照片活动,这意味着您打开的这个新Activity将返回一个调用方法onActivityResult
的值。
实施该方法,并检查您是否来自照片的活动,然后打开下一个活动。
你的流程将是这样的:
onActivityResult
将被称为onActivityResult
开始编辑信息活动您可以从此答案中找到有关管理活动的具体信息: How to manage `startActivityForResult` on Android?
PD:我无法测试代码,自从我为Android编写代码以来已经有一段时间了。如果我回到家,我可以毫不费力地开始一个小型的android项目,我会发布一些例子。答案 2 :(得分:0)
我想在开始新活动之前打开相机。
然后,在startActivity()
来自EnterInfoActivity
活动的onActivityResult()
来电之前,请勿致电ACTION_IMAGE_CAPTURE
ACTION_IMAGE_CAPTURE
。因此,您等待It's because that's how it is
,然后的结果开始下一个活动。