Ориентация камеры Android

Я пытаюсь выучить основы дополненной реальности из этой статьи: http://www.devx.com/wireless/Article/42482/0/page/2

при запуске камера приняла противоположную ориентацию. У меня вопрос, как получить фиксированный и нормальный вид с помощью камеры. Это класс CustomCameraView:

package com.syariati.camera;

import android.content.Context;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class CustomCameraView extends SurfaceView {
    Camera camera;
    SurfaceHolder surfaceHolder;

    public CustomCameraView(Context context){
        super(context);
        surfaceHolder = this.getHolder();
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        surfaceHolder.addCallback(surfaceHolderListener);
    }

    SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback() {

        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            camera.stopPreview();
            camera.release();
        }

        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            camera = Camera.open();
            try{
                camera.setPreviewDisplay(surfaceHolder);
            }
            catch(Exception e){
                e.printStackTrace();
            }
        }

        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width,
                int height) {
            // TODO Auto-generated method stub
            Parameters params = camera.getParameters();
            params.setPictureFormat(PixelFormat.JPEG);
            camera.setParameters(params);
            camera.startPreview();
        }
    };
}

Должен ли я добавить еще один метод на параметры?

Извините за мой плохой английский. Спасибо.

Так решается проблема.

добавлять:

camera.setDisplayOrientation(90);

Android - предварительный просмотр камеры сбоку

2 ответа

Установите степень ориентации в соответствии с вашим требованием, потому что у меня был пользователь 90 для передней камеры и 270 градусов для задней камеры:

Camera.Parameters params = camera.getParameters();
params.set("rotation", 90);
camera.setParameters(params);

Перейдите в файл AndroidManifest.xml своего приложения и затем следуйте

Application tab -> select CustomCameraView activity -> 
attributes for CustomCameraView activity -> screen orientation -> select portrait.

И запустить его - Приятного...

Другие вопросы по тегам