Как начать работу камеры без датчика акселерометра? - PullRequest
3 голосов
/ 21 января 2012

В настоящее время я пишу приложение, которое должно захватывать некоторые изображения.Я запускаю приложение камеры с помощью намерения, подобного следующему:

if (v.equals(btnCap)) {
        Intent cameraIntent = new Intent(
                android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
    }

Проблема заключается в следующем: когда я наклоняю свое устройство, кнопки на камере по-прежнему меняют свою ориентацию, и полученное изображение не в портретной ориентации.

Кто-нибудь знает, как захватить изображение в портретном режиме, даже если устройство наклонено?

Заранее спасибо, Адриан

Ответы [ 2 ]

1 голос
/ 21 января 2012

использовать setDisplayOrientation (в градусах) это сделает работу

, если вы используете собственную камеру, вы можете использовать ее следующим образом

camera.setDisplayOrientation(90);

http://code.google.com/p/android/issues/detail?id=1193#c42

1 голос
/ 21 января 2012

Лучший вариант - создать собственное приложение для камеры (http://developer.android.com/guide/topics/media/camera.html#custom-camera).

, а затем в своем AndroidManifest.xml добавить параметр android:screenOrientation="portrait" в декларацию своей активности.

Лучше создавать свои собственные действия с камерой, потому что у вас могут быть проблемы с получением изображений в зависимости от модели устройства. У меня однажды была проблема с устройствами Samsung (см. Android Samsung: приложение камеры не возвращает intent.getData() )

...