#android #webview #zooming
#Android #webview #масштабирование
Вопрос:
Я пытаюсь заставить zoom работать в моем WebView в моем приложении Android Studio, но безрезультатно. Когда я пытаюсь увеличить масштаб, он просто немного расширяется до границ экрана. Однако функция масштабирования работает, если я обрабатываю свою веб-страницу напрямую в браузере Chrome. Ниже приведен мой код.
webView.setInitialScale(270);
webView.setPadding(0, 0, 0, 0);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
webView.getSettings().setUseWideViewPort(true);
Bundle extras = getIntent().getExtras();
url = extras.getString("url");
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
Вот мой макет.
<WebView
android:layout_width="fill_parent"
android:layout_height="495sp"
android:id="@ id/web_view"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"></WebView>
Тот факт, что он работает в браузере Chrome, но не в моем приложении, ставит меня в тупик. Я изменил начальное значение scale на 100, и вид стал очень маленьким, но это позволило мне уменьшить его до пределов ширины экрана. Однако, если я установлю значение initialscale равным 270, WebView заполнит границы экрана так, как я хочу. Это просто не позволит мне увеличивать изображение за пределы физических границ экрана, как это происходит в Chrome. У кого-нибудь есть какие-либо предложения о том, как увеличить масштаб за пределы экрана?
Комментарии:
1. Находится ли ваш webview внутри ScrollView? Значение высоты должно быть в
dp
неsp
2. Я не думаю, что мой webview находится внутри scrollview, по крайней мере, я никогда не настраивал его таким образом. Все, что у меня есть, это webview и 3 textviews под webview в моем макете.
Ответ №1:
Попробуйте добавить эти свойства
/*--WebView--*/
@SuppressLint("SetJavaScriptEnabled")
private void callWebView(String url) {
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setScrollBarStyle(View.VISIBLE);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setAllowContentAccess(true);
webView.setWebViewClient(new WebViewClient());
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.setScrollBarSize(20);
webView.loadUrl(url);
}
Комментарии:
1. Я внес ваши изменения, но масштабирование по-прежнему ограничено исходным отображением. Похоже, что есть жесткая граница, которая просто ограничивает мой масштаб.