0

У меня есть следующий код (довольно простой):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 (теперь устарел), я считаю, что размер NORMAL слишком мал и LARGE слишком большой.

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

ответ

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.????); 
     } 
    } 

EDIT Учитывая, что ваша реальная проблема не имеет доступа устаревшие интерфейсы 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); 
     } 
    } 
+0

Спасибо! Теперь я знаю, что setTextZoom был введен в API 14, поэтому неудивительно, что он не работал. Я все еще ищу способ иметь текст между NORMAL и LARGE в старых API. – francgo

+0

ОК, так мой ответ принят? – gunar

+0

Не очень, я ценю вашу помощь, но то, что я намереваюсь сделать, это увеличить/уменьшить textSize в WebView для Android 2.3 с большей точностью, чем позволяет setTextSize. – francgo