0

我有以下代码(很简单):

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 太大。

任何帮助表示赞赏,感谢您的时间!

4

1 回答 1

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);
        }
    }
于 2013-06-07T12:56:37.930 回答