WebSettings.setZoomLevel "нет такого метода" на Android 2.3

У меня есть следующий код (довольно просто):

WebSettings webSettings = webView.getSettings();
webSettings.setTextZoom(110);

Пока работает на Android 4.0, все в порядке. Тем не менее, как Android 2.2, так и Android 2.3.3 выдают исключение "нет такого метода" при попытке запустить setTextZoom (то же самое происходит с getTextZoom). Я знаю, что предыдущий метод setTextSize устарел, но я не нашел никакой информации о том, существовал ли тогда setTextZoom. Я знаю, что мой minSdkVersion равен 8, а моя цель - 9, и Eclipse не жалуется на setTextZoom.

Хотя я мог бы использовать setTextSize (в настоящее время не рекомендуется), я считаю НОРМАЛЬНЫЙ размер слишком маленьким, а БОЛЬШОЙ - слишком большим.

Любая помощь приветствуется, спасибо за ваше время!

1 ответ

Это должно поддерживать новые и старые API.

@SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    protected void updateTextSize(WebSettings settings) {
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
            settings.setTextZoom(some_value);
        } else {
            settings.setTextSize(TextSize.????);
        }
    }

РЕДАКТИРОВАТЬ Учитывая, что ваша настоящая проблема не в доступе к устаревшим API, а в размере шрифта, я полагаю, что ниже приведен ответ, который вам нужен:

protected void updateTextSize(WebSettings settings, int fontSize) {
        if(fontSize > 1 && fontSize < 72) {
            // there's no point setting a different value considering outside values will be pinned 
            settings.setDefaultFontSize(fontSize);
        }
    }
Другие вопросы по тегам