我正在编写一个Android应用程序,让用户拍照,然后将照片用作另一个视图的背景。问题是拍摄照片后,应用程序将不会切换到新视图。 setContentView()失败,但只在我的三星Galaxy S上,而不是在模拟器中。
我有一个理论。三星正在横向拍摄照片。拍摄照片后,它会切换回纵向。我相信这是这个开关导致应用程序返回其主视图。但是,唉,我对如何解决这个问题感到茫然。
以下是一些代码:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE, null);
intent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());
startActivityForResult(intent, ACTIVITY_TAKE_PHOTO);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK)
return;
switch(requestCode) {
case ACTIVITY_TAKE_PHOTO:
setContentView(R.layout.foo);
break;
}
}
private Uri getImageUri() {
File file = new File(Environment.getExternalStorageDirectory() + "/DCIM", CAPTURE_TITLE);
Uri imgUri = Uri.fromFile(file);
return imgUri;
}