2012-02-02 3 views
1

У меня есть инициализированную WebView со следующим кодом:Android WebView масштаба после загрузки страницы

_webView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     while (view.zoomOut()); 
    } 
_webView.loadURL("path/to/image.png"); 

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

Есть ли какой-либо другой способ полностью уменьшить изображение после того, как страница загружена (я использую WebView для отображения изображения)?

ответ

8

Попробуйте этот кусок кода:

public class WebViewSampleActivity extends Activity 
{ 
    WebView wb; 
    private class HelloWebViewClient extends WebViewClient 
    { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) 
     { 
      return false; 
     } 
    } 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);  
     wb=(WebView)findViewById(R.id.webView1);   
     wb.getSettings().setJavaScriptEnabled(true); 
     wb.getSettings().setLoadWithOverviewMode(true); 
     wb.getSettings().setUseWideViewPort(true); 
     wb.getSettings().setBuiltInZoomControls(true); 
     wb.getSettings().setPluginState(WebSettings.PluginState.ON); 
     wb.getSettings().setPluginsEnabled(true);   
     wb.setWebViewClient(new HelloWebViewClient()); 
     wb.loadUrl("http://www.foofoo.com");   
    } 
} 

Надеется, что это помогает.

+1

Спасибо, 'wb.getSettings () .setLoadWithOverviewMode (true); 'сделал трюк для меня: D – kroegerama

+0

Добро пожаловать. Это действительно так, но вы также можете включить 'wb.getSettings(). SetUseWideViewPort (true)' вместе с ним для достижения лучших результатов. Во всяком случае, я включил все основные настройки в свой код. Не хотел, чтобы с ним что-то случилось. :) BTW, спасибо за принятие ответа :) – Ghost

+1

Я уже использую '.setUseWideViewPort (true)' уже. А теперь и следующие: '.setDefaultZoom (ZoomDensity.FAR); .setBuiltInZoomControls (истинный); .setLoadWithOverviewMode (true); 'Они должны обеспечить наилучшие результаты для моей цели. Еще раз спасибо =) – kroegerama

1

Ничего не делать в onPageFinished() использовать вместо webview.getSettings().setDefaultZoom(WebviewSetting.ZoomDensity.FAR);

Надеется, что это помогает

+2

Извините, это не сработало для меня. – kroegerama

1

Этих две наиболее важные команд при загрузке изображения:

webView.getSettings().setLoadWithOverviewMode(true); 
webView.getSettings().setUseWideViewPort(true); 
Смежные вопросы