我的应用程序使用WebView,用户有时会调整缩放级别以使文本更大.但是,当"活动"关闭且另一个活动开始时,缩放级别设置将丢失.
我无法在WebView上看到如何以编程方式获取和设置缩放级别,任何人都可以建议这样做的方法吗?
它来自Grupo Reforma的Jorge,这是我使用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(); }
我希望这有帮助