Вращение предварительного просмотра камеры Android

Согласно сайту разработчиков Android:

после Android 2.2 появилась функция

"setDisplayOrientation"

для настройки поворота предварительного просмотра камеры.

А также согласно сайту разработчиков Android, мы можем найти следующий исходный код.

android.hardware.Camera.CameraInfo info =
            new android.hardware.Camera.CameraInfo();
    android.hardware.Camera.getCameraInfo(cameraId, info);
    int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
    int degrees = 0 ;
    switch ( rotation ) {
        case Surface.ROTATION_0 : degrees = 0 ; break ;
        case Surface.ROTATION_90 : degrees = 90 ; break ;
        case Surface.ROTATION_180 : degrees = 180 ; break ;
        case Surface.ROTATION_270 : degrees = 270 ; break ;
    }
    int result ;
    if ( info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
        result = ( info.orientation + degrees ) % 360 ;
         result = ( 360 - result ) % 360 ;   // compensate the mirror
    } else {   // back-facing

        result = ( info.orientation - degrees + 360 ) % 360 ;

    }

Однако я не могу работать с некоторыми устройствами. Например, Samsung Galaxy Y S5360, S5660, YP -G1, YP -G70 и т. д.

Не работает только часть машины, Galaxy Nexus, SII или какое-либо устройство высокого класса, все работает нормально.

SetDisplayOrientation не поддерживает или прошивка устройства не готова?

ПС. Все устройства имеют Android 2.3.1 или выше.

Помогите.

9
задан Ah Lam 30 April 2012 в 14:11
поделиться