Набор камер AndroidDisplayOrientation: странное поведение для вкладки galaxy - PullRequest
4 голосов
/ 20 октября 2011

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

Display display = ((CaptureActivity)context).getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

if (Integer.parseInt(Build.VERSION.SDK) >= 8) {
    setDisplayOrientation(camera, 90);
}else{
    Camera.Parameters parameters = camera.getParameters();
    parameters.set("orientation", "portrait");
    camera.setParameters(parameters);
}

, где setDisplayOrientation () определяется как:

protected void setDisplayOrientation(Camera camera, int angle) {
    Method downPolymorphic;
    try {
        downPolymorphic = camera.getClass().getMethod(
                "setDisplayOrientation", new Class[] { int.class });
        if (downPolymorphic != null)
            downPolymorphic.invoke(camera, new Object[] { angle });
    } catch (Exception e1) {
    }
}

Теперь я попробовал этот код вGalaxy Tab и это не удалось.Я решил эту проблему (используя метод проб и ошибок), используя следующий код:

if (height == 1024 && width == 600) {
    Camera.Parameters parameters = camera.getParameters();
    parameters.set("orientation", "portrait");
    parameters.setRotation(90);
    camera.setParameters(parameters);
}

Теперь у меня есть два вопроса:

1) Почему возникает такая проблема, когда на вкладке Galaxy есть версия 2.2,и

2) Есть ли лучшее решение этой проблемы?

Большое спасибо за ваше время!

1 Ответ

0 голосов
/ 18 июня 2016

для установки ориентации дисплея ознакомьтесь с официальными документами , просто не указывайте здесь 90 градусов.

...