Android: setContentView () не работает после съемки фотографии - PullRequest
0 голосов
/ 24 января 2012

Я пишу приложение для Android, которое позволяет пользователю сделать фотографию, а затем использует фотографию в качестве фона для другого просмотра. Проблема в том, что после того, как фотография сделана, приложение не переключится на новый вид. Функция setContentView () не работает, но только на моем Samsung Galaxy S, а не в эмуляторе.

У меня есть теория. Samsung делает фотографию в альбомной ориентации. После того, как фотография сделана, она возвращается в портретную ориентацию. Я считаю, что именно этот переключатель заставляет приложение вернуться к своему основному виду. Но, увы, я не знаю, как решить эту проблему.

Вот код:

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;
    }
...