Подогнать изображение в webview - PullRequest
10 голосов
/ 13 октября 2010

Я планирую отображать изображения с SD-карты в веб-просмотре, чтобы воспользоваться встроенными возможностями масштабирования веб-просмотра. Однако я столкнулся с проблемой отображения изображений, размер которых превышает размер экрана (например, 1800x1200), чтобы они изначально помещались на экране, как в ImageView. Сначала я хочу, чтобы изображение отображалось полностью и предоставляло пользователям управление масштабированием. Я пытался использовать WRAP_CONTENT для ширины и высоты веб-просмотра, но это не работает. Есть идеи? Ниже приведен фрагмент кода, который я использую:

    String path = getRealPathFromURI(mUriList.get(0)); // this gets the file path
    webView = (WebView) findViewById(R.id.WebView01);
 WebSettings settings= webView.getSettings();
 settings.setBuiltInZoomControls(true);
 settings.setSupportZoom(true);     
 webView.loadUrl("file://" + path);

Ответы [ 4 ]

9 голосов
/ 06 июля 2011
 private WebView mWebView2;
    mWebView2 = (WebView)findViewById(R.id.webview);
    mWebView2.getSettings().setJavaScriptEnabled(true);
    mWebView2.getSettings().setLoadWithOverviewMode(true);
    mWebView2.getSettings().setUseWideViewPort(true);
    mWebView2.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    mWebView2.setScrollbarFadingEnabled(true);
    mWebView2.loadDataWithBaseURL("file:///android_asset/", "<img src=\"banner5.png\" height=\"98%\" width=\"100%\"/>", "text/html", "utf-8", null);

Изображения находятся в папке ресурсов

4 голосов
/ 06 июня 2014

Если вы пишете свой HTML правильно, вам не нужно делать какие-либо "setLoadWithOverviewMode", "setUseWideViewPort" или "setInitialScale". И нет абсолютно никаких причин, чтобы включить JavaScript.

Эта строка работала для меня:

webView.loadDataWithBaseURL("file://" + directory, "<img src=\"" + name + "\" width=\"100%\"/>", "text/html", "utf-8", null);

HTML-код подчеркивания:

<img src=YourImage.png width="100%" />, если не задавать высоту, соотношение сторон будет сохранено.

3 голосов
/ 15 января 2011

Это помогло мне:

webView.setInitialScale(30);
WebSettings webSettings = webView.getSettings();
webSettings.setUseWideViewPort(true);
0 голосов
/ 19 июня 2015
WebSettings settings = webView.getSettings();

settings.setUseWideViewPort(true);

settings.setLoadWithOverviewMode(true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...