когда я запускаю камеру, то ее поверхность входит прямо напротив

1

Мой код для создания поверхности:

public void surfaceCreated(SurfaceHolder arg0){
        // TODO Auto-generated method stub


        if (camera == null) {
            try {
                Log.e("camera starting","camera starting");
                camera = android.hardware.Camera.open();
                Camera.Parameters parameters = camera.getParameters();
                //final List<String> coloreffects = camera.getParameters().getSupportedColorEffects();
                mParameters.set("rotation","ANTIBANDING_60HZ");
                parameters.setFocusMode(Camera.Parameters.EFFECT_SEPIA);
                parameters.getFocusMode();

                mParameters.set("rotation",90);
                parameters.setFocusMode("android.intent.extra.focus");
                Intent intent = new Intent("android.intent.extra.focus");
                startActivityForResult(intent, 0);

                camera.setParameters(parameters);
                Log.e("camera running","camera runnng");

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             }
Теги:

2 ответа

3

Используйте этот код. И измените версию avd 2.2

        @Override
        public void surfaceCreated(SurfaceHolder holder) {
         camera = Camera.open();

         try {
                camera.setPreviewDisplay(holder);
                Camera.Parameters parameters = camera.getParameters();
                parameters.setPictureFormat(PixelFormat.JPEG);
                parameters.set("orientation", "portrait");
                camera.setDisplayOrientation(90); 
                parameters.setRotation(90);
                camera.setParameters(parameters);
            }
            catch (IOException exception) {
                camera.release();
            }
        }
  • 0
    прекрасный ответ, спас день
0

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

Добавить android:screenOrientation="landscape" в свою деятельность в манифесте

или добавьте это в свой onCreate()

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  • 0
    это не работает.
  • 0
    <activity android: name = ". YourActivity" android: label = "@ string / app_name" android: screenOrientation = "landscape" android: configChanges = "клавиатура скрытая | ориентация">
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню