WebView:如何跨会话保留用户的缩放设置? [英] WebView: how to preserve the user's zoom settings across sessions?

查看:24
本文介绍了WebView:如何跨会话保留用户的缩放设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序使用 WebView,用户有时会调整缩放级别以放大文本.但是,当活动关闭并启动另一个活动时,缩放级别设置将丢失.

My app uses a WebView, and users sometimes adjust the zoom level to make the text larger. However the zoom level setting is lost when the Activity is closed and another one started.

我看不到如何在 WebView 上以编程方式获取和设置缩放级别,有人能建议一种方法吗?

I can't see how to get and set the zoom level programatically on WebView, can anyone suggest a way this could be done?

推荐答案

我来自 Grupo Reforma 的 Jorge,这是我使用 SharedPreferences 的实现..

its me Jorge from Grupo Reforma, this is my implementation using SharedPreferences..

static final  String PREFS_Zoom = "PREFS_Zoom";

 private String zoomlevel;
 private int Default_zoomlevel=100;

     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

      mWebView = (WebView) findViewById(R.id.webview);        

      GetZoom();
      mWebView.setInitialScale(Default_zoomlevel);

      FrameLayout mContentView = (FrameLayout) getWindow().getDecorView().findViewById(android.R.id.content);
      View zoom = mWebView.getZoomControls();
      mContentView.addView(zoom, ZOOM_PARAMS);
      zoom.setVisibility(View.VISIBLE);

      WebSettings webSettings = mWebView.getSettings();
      webSettings.setSavePassword(false);
      webSettings.setSaveFormData(false);
      webSettings.setJavaScriptEnabled(true);
      webSettings.setSupportZoom(true);

      mWebView.loadUrl("http://www.elnorte.com");
    }



     private void GetZoom(){
      try{
       SharedPreferences settings = getSharedPreferences(PREFS_Zoom,0);
          zoomlevel = settings.getString("zoom_level","");     
       if (zoomlevel.length() >0)   
        Default_zoomlevel = Integer.parseInt(zoomlevel);               
       else
       Default_zoomlevel =100;
      }catch(Exception ex){
       Log.e("******ZOOM ! ", "Exception GetZoom()  ::"+ex.getMessage());          
      }
     }


     private void SaveZoom(){
      try{
       SharedPreferences settings = getSharedPreferences(PREFS_Zoom,0);            
       SharedPreferences.Editor editor = settings.edit();    
       Default_zoomlevel = (int) (mWebView.getScale() *100);
       editor.putString("zoom_level",""+ Default_zoomlevel);   
       editor.commit();
      }catch(Exception ex){
       Log.e("******ZOOM ! ", "Exception SaveZoom()  ::"+ex.getMessage());    
      }
     }


     public void finish() {  
      SaveZoom();
          super.finish();     
     }

希望能帮到你

这篇关于WebView:如何跨会话保留用户的缩放设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆