ウェブビューの初期ズーム/幅を設定する方法
質問
私は、WebViewがアンドロイドブラウザと同様の動作をするようにしようとしています。 ブラウザは、画面に幅を合わせようとする方法ですべてのページを開きます。 しかし、WebView のデフォルトの動作は、100% ピクセル スケールで開始するため、左上隅にズームインした状態で開始されます。
ブラウザで行うように WebView が画面に合わせてページを拡大縮小する方法を見つけようと、この数時間を費やしましたが、うまくいきません。 どなたか、これを達成する方法を見つけた方はいらっしゃいますか?
私は、setLoadWithOverviewModeという設定を見ますが、それはまったく何もしないように見えました。 また、setInitialScale を実験しましたが、異なる画面サイズと Web ページ サイズでは、ブラウザのスケーリングほど優雅ではありません。
どなたか手がかりをお持ちではないでしょうか。
ありがとうございます。
編集: Brian の方法は、携帯電話を横向きにするとうまくいくようですが、縦向きではうまくいきません。 縦画面では、近いですが、まだページ内に画面全体を収めることはできません。 どのような向きや画面サイズでも、ページの幅に合うように初期ズームを行う確実な方法があることを期待して、このバウンティを開始しました。
どのように解決するのですか?
次のコードでは、デスクトップ版の Google ホームページを完全にズームアウトして
webview
に収まるように完全にズーム アウトして読み込まれます。 デバイスの向きを変え、縦または横で再読み込みすると、ページの幅は毎回ビュー内に完全に収まります。
BrowserLayout.xml を参照してください。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Browser.javaです。
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class Browser extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.BrowserLayout);
String loadUrl = "http://www.google.com/webhp?hl=en&output=html";
// initialize the browser object
WebView browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
try {
// load the url
browser.loadUrl(loadUrl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] <td>に固定幅を設定するには?
-
[解決済み] WebViewがURLの読み込みを終了したことを確認する方法は?
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] 文字列リソースにHTML?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?
-
[解決済み] FABアイコンの色を設定する
-
[解決済み] ViewPager2でスワイプを無効にするには?