Получение проблемы в Camera Preview для Android OS 2.0 и выше - PullRequest
2 голосов
/ 29 октября 2010

Я работаю с приложением дополненной реальности с Android, и я реализовал код камеры.

Моя текущая базовая версия SDK - 1.6.Благодаря этому мое приложение работает нормально на устройствах с версией ОС до 1.6 и проблемами с ОС 2.0 и выше.

Есть ли решение?

Спасибо.

1 Ответ

3 голосов
/ 29 октября 2010

Я погуглил и получил приведенное ниже решение. Замените ваш метод с измененной поверхностью на менее одного

private static Method getSupportedPreviewSizes = null;
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

    try {
        Camera.Parameters parameters = camera.getParameters();

        Integer version = Integer.parseInt(Build.VERSION.SDK);

        if (version >= Build.VERSION_CODES.ECLAIR) {

            try {
                getSupportedPreviewSizes = Parameters.class.getMethod(
                        "getSupportedPreviewSizes", (Class[]) null);
                /* success, this is a newer device */
            } catch (NoSuchMethodException nsme) {
                /* failure, must be older device */
            }

            Object supportedFormats = getSupportedPreviewSizes.invoke(
                    parameters, (Object[]) null);
            List<Size> sizes;
            if (supportedFormats instanceof List<?>) {
                sizes = (List<Camera.Size>) supportedFormats;// params.getSupportedPreviewSizes();
                Size optimalSize = getOptimalPreviewSize(sizes, w, h);
                parameters.setPreviewSize(optimalSize.width,
                        optimalSize.height);
            }
        } else {

            parameters.setPreviewSize(100, 100);
        }
        parameters.setPictureSize(320, 480);

        camera.setParameters(parameters);
        camera.startPreview();
    } catch (Exception e) {

        e.printStackTrace();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...