Android WebView масштабирование с помощью масштабирования

StackOverflow https://stackoverflow.com/questions/3195310

  •  02-10-2019
  •  | 
  •  

Вопрос

ПРИВЕТ,

Можно ли поддерживать масштабирование WebView (аналогично браузеру по умолчанию), когда пользователь зажимает и перемещает их пальцы ближе / дальше. Я использую 2.2 и заслуживает, это будет возможно, используя ShareSceCteTector. Проблема в том, что я не могу найти метод для установки масштаба. WebView.getscale () Возвращает текущую масштаб, которая изменяется через Zoomin () и Zoomeout (), но я не могу найти устанавливать () или возможность установить масштабирование по умолчанию, и пусть OS обрабатывает его.

Энди

Это было полезно?

Решение

Использовать:

webview.getSettings().setBuiltInZoomControls(true);

Чтобы сделать защемление масштабирования и поместить кнопки увеличения / выхода по умолчанию на экране.

Другие советы

Вам нужно реализовать OntouchEvent (MotionEvent) в вашем WebView.

Затем в этом случае пропустите движущийся к MotionEvent к Scale GestRedeTector так, чтобы он мог ее обработать, а затем позвонить в супер.

class ScalableWebView extends WebView implements ScaleGestureDetector.OnScaleGestureListener
{
    ScaleGestureDetector mScaleDetector = new ScaleGestureDetector(this, this);

    public boolean onTouchEvent(MotionEvent event)
    {
        if(mScaleDetector.onTouchEvent(event))
             return true;

        return super.onTouchEvent(event);
    }

    boolean onScaleBegin(ScaleGestureDetector detector) 
    {
     //handle scale event begin
    }

    boolean onScale(ScaleGestureDetector detector) 
    {
     //handle scale event
    }

    boolean onScaleEnd(ScaleGestureDetector detector) 
    {
     //handle scale event end
    }

}

Существует setScale , попробуй это :

webView.setInitialScale((int)(100 * webView.getScale());
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top