在webview中将纵向更改为横向时自动缩放> 19

时间:2015-02-16 12:39:57

标签: android

更改方向时,

webview会自动缩放。 我想将webview视为普通屏幕,无论它是否滚动只是想要缩小webview。 如何解决这个问题。

我玩初始比例但没有变化。

我创建了自定义webview

 package com.myapp.app;

 import android.content.Context;

 import android.util.AttributeSet;

 import android.webkit.WebView;

 public class YourCustomWebView extends WebView {


  public YourCustomWebView(Context context) {
    super(context);
    init(context);
  }

public YourCustomWebView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
}

public YourCustomWebView(Context context, AttributeSet attrs, int   defStyle) {
    super(context, attrs, defStyle);
    init(context);
}

private void init(Context context) {  

    public int scrollmiddle(){

    int returnval=this.computeHorizontalScrollRange();
    this.scrollTo((returnval/4) + 100, this.getScrollY());

    return returnval;
}
} 

和这样的java文件。

@Override
 protected void onSaveInstanceState(Bundle outState) {
  super.onSaveInstanceState(outState);
  mWebView.saveState(outState);
 }

 @Override
 public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
 }
在onCreate方法中

mWebView = (YourCustomWebView) findViewById(R.id.webView);
WebSettings webSettings = mWebView.getSettings();

if(savedInstanceState != null){
          mWebView.restoreState(savedInstanceState);
          mWebView.setInitialScale(0);

          webSettings.setLoadWithOverviewMode(true);
    }else{
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);

        if(android.os.Build.VERSION.SDK_INT >=android.os.Build.VERSION_CODES.JELLY_BEAN){
             webSettings.setAllowUniversalAccessFromFileURLs(true);
         }

         webSettings.setLoadWithOverviewMode(true);
         webSettings.setUseWideViewPort(true);

         MyWebChromeClient chromeclient=new MyWebChromeClient();
         mWebView.setWebChromeClient(chromeclient);
         MyWebViewClient client = new MyWebViewClient();
         mWebView.setWebViewClient(client);

         mWebView.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");


         mWebView.loadUrl(getString(R.string.urlhome));

    }

这是我的xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

 <com.myapp.app.YourCustomWebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" /></RelativeLayout>

清单文件

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
        android:label="@string/app_name" >
    </activity>

我尝试了许多方法,但没有成功。

任何帮助将不胜感激,谢谢

2 个答案:

答案 0 :(得分:1)

您需要在HTML中添加以下内容:

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">

和你的CSS:

html {-webkit-text-size-adjust: none;}

取自this post(以及评论)。

答案 1 :(得分:0)

试试这个

 webSettings.setAppCacheEnabled(true);

或每个活动的manifest.xml

android:configChanges="orientation"