1

重複の可能性:
WebView:セッション間でユーザーのズーム設定を保持する方法は?

私は、WebView内に初期URLをロードする単純なAndroidアプリを開発しています。その後、ユーザーは自由にズームイン/ズームアウトしてナビゲートできます。

ユーザーがリンクをタップすると、「ズームレベル」が失われ(またはリセットされ)、ユーザーは再度ズームイン/ズームアウトする必要があります。これはユーザーを苛立たせます!現在のズームを保存/保存する方法が見つかりませんでした。(onScaleChangedイベントを使用してみましたが、ユーザーがタップした後にのみ生成されるようです)

onPageFinished内でを使用して解決しました:

@Override
public void onPageFinished(WebView webView, String url) {
webView.loadUrl("javascript:(function() { " +  
"document.getElementsByTagName('body')[0].style.zoom='" + yourzoomvariable + "'; })()");
}

助けてくれてありがとう!

4

1 に答える 1

0

表示している html に対する権限はありますか? ヘッダー内のメタ タグを使用して、html 内でもスケーリングとズームを調整できます。

例えば:

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

編集:

背景色をグラデーションに変更する以下のコードのように、ロードが終了するたびにそのメタタグを挿入することもできます。

public void onPageFinished(WebView view, String url) {



            //styling



            webview.loadUrl("javascript:(function() { " +  
                    "document.getElementsByTagName('body')[0].style.background = '-webkit-gradient(linear, 0% 0%, 0% 100%, from(#143b8a), to(#266af3))'; " + 
                    "})()");  



        }

また、ここで説明されているように、ズームインとズームアウトの値を使用することもできます。 次に、そこにステータスを保存でき、ユーザーはそれを1つだけ調整する必要があります。

于 2012-09-26T01:41:29.110 に答える