Ориентация камеры 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);
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.
И запустить его - Приятного...