如何在WebView加载内容后将内容缩放到特定比例?(我不想重新加载内容。)
我正在使用Android 2.3及更高版本。
解决方案1:这里我们通过百分比设置缩放级别,这意味着当页面准备就绪时,getScale将返回5.2f:
mView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.setInitialScale(520);
super.onPageStarted(view, url, favicon);
}
private WebView mView;
private Handler mZoomHandler = new Handler();
private Runnable mZoomRunnable = new Runnable() {
@Override
public void run() {
if ((int) mView.getScale() < WANTED_SCALE) {
mView.zoomIn();
mZoomHandler.postDelayed(this, 10);
} else if ((int) mView.getScale() > WANTED_SCALE) {
mView.zoomOut();
mZoomHandler.postDelayed(this, 10);
}
}
};
mView.getSettings().setSupportZoom(true);
mView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mZoomRunnable.run();
}
});
run()
函数会一直运行,因为 zoomIn
和 zoomOut
的缩放级别太大了,无法达到所需的缩放比例 WANTED_SCALE
。 - Hoang Huynh