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