Подтвердить что ты не робот

Как показать определенную часть веб-страницы внутри веб-обозревателя с помощью экрана для всех устройств

Я хочу показать веб-страницу внутри WebView. До этого это нормально.

Но у меня есть WebPage (как указано ниже), и я хочу определенную часть. Я имею в виду, что только верхний левый угол должен быть видимым в соответствии с режимом экрана во всех устройствах.

Я решаю эту проблему с двух последних трех дней.

Я хочу:. Я хочу показать верхний левый угол веб-страницы, чтобы показать внутри Webview. Независимо от того, что Stratergy может быть с масштабированием или любым другим вариантом, но он должен соответствовать экрану для всего устройства.

Еще одна вещь Я не могу изменить исходный код веб-страницы, потому что он исправлен.  Мне нужно управлять самим кодом.

enter image description here

Что я пробовал: Я ссылаюсь на ссылки Stackoverflow, но не повезло.

Вот мой код.

            WebView wv;
        wv = (WebView) findViewById(R.id.webview_MyPoops);
        wv.getSettings().setJavaScriptEnabled(true);

        // wv.setInitialScale(185);

        // wv.setInitialScale(30);
        String URL = "MY_LINK";

        wv.loadUrl(URL);

        WebSettings webSettings = wv.getSettings();
        webSettings.setSavePassword(false);
        webSettings.setSaveFormData(false);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSupportZoom(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setUseWideViewPort(true);

Я получаю полную веб-страницу, показанную на устройствах.

Он отлично работает в моем устройстве LG (у которого есть разрешение 480 * 800), но в большом устройстве или вкладках, таких как Galaxy Tab2, я получаю очень маленькое изображение верхнего левого угла, а все остальные области экрана - только фон WebPage.

Ниже приведен снимок экрана Galaxy Tab2 после запуска вышеуказанного кода. enter image description here Пожалуйста, у вас есть предложение, в котором мне не хватает. Спасибо в Advance.

4b9b3361

Ответ 1

попробуйте с этим кодом переместить эту работу для u.

webview.setInitialScale(getScale()); 



private int getScale(){
            Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
            int width = display.getWidth(); 
            Double val = new Double(width)/new Double(200);
            Log.e("hh", "** "+val);
            val = val * 100d;
            Log.e("hh", "** "+val);
            return val.intValue();
        }

Ответ 2

WebView x;

x.setInitialScale(1);

Это возможное увеличение расстояния. Но для некоторых сайтов это выглядит просто UGLY.

Это была вторая версия, которую я нашел

test1.getSettings().setDefaultZoom(ZoomDensity.FAR);

Это приятный все круче, чем кажется, просто уменьшилось достаточно далеко, но все-таки не то, что я искал.

И теперь вот окончательное решение, которое у меня есть.

x.getSettings().setLoadWithOverviewMode(true);
x.getSettings().setUseWideViewPort(true);

В основном, на что они отвечают в этом вопросе.

setLoadWithOverviewMode(true) 

Загрузка WebView полностью уменьшена

setUseWideViewPort(true)

Ответ 3

Вы можете попробовать использовать HtmlCleaner (примеры того, как его использовать здесь), чтобы получить html с веб-страницы, затем извлеките часть, которую вы хотите отобразить, и загрузите ее в WebView, используя: WebView.loadData();.

Я использовал этот метод в одном из моих приложений для переформатирования страницы, чтобы было проще использовать на мобильном устройстве.

Ответ 4

На странице HTML вы можете иметь что-то вроде target-densitydpi=240; в зависимости от типа устройства, просто установите этот параметр из кода Java, страница будет автоматически соответствовать целевой плотности.

Ответ 5

Я считаю, что исправление должно быть сделано только на уровне веб-страницы, и в идеале WebView не может делать никаких трюков. WebView является просто браузером (конкретным браузером хрома), который должен просто выполнять рендеринг, как указано на веб-странице.

Чтобы исправить вашу проблему, вы должны попробовать изменить CSS веб-страницы.