Как настроить внешний вид веб-просмотра при отображении изображений и текста? - PullRequest
0 голосов
/ 21 февраля 2020

когда я показываю изображение в веб-просмотре, текст становится меньше, так как же сделать так, чтобы он выглядел уместно?

это внешний вид!

enter image description here

Я хочу, чтобы это выглядело аккуратно. или уменьшить изображение в соответствии с макетом

enter image description here

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Вы можете применить пользовательский css к контенту веб-просмотра и загрузить его. Пример кода ниже, который вы можете заключить в метод и вызвать его для обратного вызова onPageStarted или onPageFinished при настройке веб-клиента для веб-просмотра.

Пример:

            InputStream inputStream = context.getResources().getAssets().open("my_css.css"); //Your css file stored in assets
            byte[] buffer = new byte[inputStream.available()];
            inputStream.read(buffer);
            inputStream.close();
            String encoded = Base64.encodeToString(buffer, Base64.NO_WRAP);
            webview.loadUrl("javascript:(function() {" +
                    "var parent = document.getElementsByTagName('head').item(0);" +
                    "var style = document.createElement('style');" +
                    "style.type = 'text/css';" +
                    "style.innerHTML = window.atob('" + encoded + "');" +
                    "parent.appendChild(style)" +
                    "})()");
        } catch (Exception e) {
            //Exception
        }
0 голосов
/ 21 февраля 2020

Чтобы изменить настройки сети:

WebSettings setting = web.getSettings();
Resources res = getResources();
fontSize = res.getDimension(R.dimen.sp_20);
setting.setDefaultFontSize((int)fontSize);
setting.setRenderPriority(RenderPriority.HIGH);
setting.setCacheMode(WebSettings.LOAD_NO_CACHE);
setting.setAppCacheEnabled(false);
setting.setBlockNetworkImage(true);
setting.setLoadsImagesAutomatically(true);
setting.setGeolocationEnabled(false);
setting.setNeedInitialFocus(false);
setting.setSaveFormData(false);
...