2013-12-19 43 views

回答

4

解決方法1:在這裏我們設置按百分比縮放級別這個意義上,當頁面就緒的getScale將返回5.2f:

mView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     view.setInitialScale(520); 

     super.onPageStarted(view, url, favicon); 
    } 

解決方案2:這種方法是不是100%準確,因爲它的舍入縮放爲int值:

private WebView mView; 
private Handler mZoomHandler = new Handler(); 
private Runnable mZoomRunnable = new Runnable() { 

    @Override 
    public void run() { 
     if ((int) mView.getScale() < WANTED_SCALE) { 
      mView.zoomIn(); 
      mZoomHandler.postDelayed(this, 10); 
     } else if ((int) mView.getScale() > WANTED_SCALE) { 
      mView.zoomOut(); 
      mZoomHandler.postDelayed(this, 10); 
     } 
    } 
}; 

mView.getSettings().setSupportZoom(true); 
mView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     mZoomRunnable.run(); 
    } 
}); 
+0

謝謝,請給我一些時間來測試這個工作是否足夠滿足我的需求,我會報告回 –

+1

對不起,這沒有奏效。 'run()'永遠運行,因爲'zoomIn'和'zoomOut'具有太大的縮放級別,它永遠無法到達'WANTED_SCALE'。 –

+0

這與Nexus 5運行4.4平臺一致。你在用哪種設備? – Niko