Как использовать WebView для отображения изображения - PullRequest
0 голосов
/ 22 декабря 2011

Я хочу создать WebView для отображения изображения.

Но при втором / третьем запуске приложения WebView пусто на реальных устройствах.

Когда я закомментирую //wv.getSettings().setJavaScriptEnabled(true);, тогда все хорошо, а когда в .http я удаляю onload="resize(this);" приложение тоже запускается с изображением каждый раз.

Как это исправить. Как использовать JavaScript и не иметь пустых WebView?

Может, мне нужно сохранить кеш после первой инициализации?

public class TestwebViewimageActivity extends Activity {
private WebView wv;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    wv = (WebView) findViewById(R.id.webview);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.setWebViewClient(new HelloWebViewClient());  
    wv.setBackgroundColor(0x00000000);
    wv.getSettings().setBuiltInZoomControls(false);
    wv.setVerticalScrollBarEnabled(false);
    wv.setHorizontalScrollBarEnabled(false);
    wv.loadUrl("file:///android_asset/4.html");
}

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
}

мой .html мачта показать изображение в полном окне:

<html><head>
</head>
<body>
<img src="myimage.png" onload="resize(this);" />
<script type="text/javascript">
function resize(image) {
    image.style['height'] = document.body.clientHeight + 'px';
    image.style['width'] = document.body.clientWidth + 'px';

    image.style['margin'] = 0;
    document.body.style['margin'] = 0;
}
</script>
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 22 декабря 2011
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
String summary = "<html><body><div style=\"background:red; \"</div>
<img src=\"res/drawable/banner300.jpg\"/></body></html>";
mWebView.loadData(summary, "text/html", "utf-8");
0 голосов
/ 22 декабря 2011

Почему вы пытаетесь вручную изменить размер изображения?Просто установите ширину изображения и дайте веб-представлению настроить высоту соответственно.У меня отлично работает.

0 голосов
/ 22 декабря 2011

Не могу не подумать, что для изменения размера изображения лучше использовать CSS, чем JavaScript.

Я сделал пример, используя отличный background-size: contains; свойство, которое автоматически масштабирует фон так, чтобы оно вписывалось в div, я думаю, это то, чего вы пытались достичь с помощью JavaScript.

http://jsfiddle.net/4DNsL/

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