11 Stimmen

Wie man Breite und Höhe eines Webviews in Android erhält

Ich möchte die Breite und die Höhe des WebView . Ich habe bereits versucht, es mit:

webView.getWidth();
webView.getHeight();

aber das Ergebnisprotokoll zeigt sie immer als 0 an.

6voto

gawicks Punkte 1764

Hier ist eine elegantere Lösung

public void onCreate(Bundle savedInstanceState) {

        webView = (WebView) findViewById(R.id.webView1);

        webView.addOnLayoutChangeListener(new OnLayoutChangeListener() {

            @Override
            public void onLayoutChange(View v, int left, int top, int right,int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                 int w= webView.getWidth();
                 int h= webView.getHeight();

            }
        });

    }

2voto

espinchi Punkte 8768

Sie haben wahrscheinlich zu früh nach den Größen gesucht, wahrscheinlich in der onCreate . Versuchen Sie stattdessen Folgendes:

webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView webView, String url) {
                super.onPageFinished(webView, url);
                Log.i(TAG, findViewById(R.id.my_component).getWidth(););
            }
        });

2voto

Roko Punkte 29

Für alle anderen, die noch Probleme haben. Verwenden Sie diese Methoden, um die Höhe und Breite Ihres Webviews zu ermitteln.

computeHorizontalScrollRange(); -> for width 
computeVerticalScrollRange(); -> for height

2voto

agodinhost Punkte 371

En onPageFinished Die Rückrufmethode funktioniert nicht bei der Verwendung von loadData o loadDataWithBaseURL . Ich sah eine andere Lösung auf Andromedev mit JavaScript, aber ich bin nicht davon überzeugt, dass dies der beste Weg ist, um zu nehmen.

1voto

Morse Punkte 6837

Ich habe einen Workaround verwendet, anstatt von unzuverlässigen Webview holen von DisplayMetrics, vorausgesetzt, Sie haben Webview Breite fast gleich Telefon Bildschirmgröße und Höhe fast gleich Höhe des Telefons Bildschirmgröße.

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = (int) displayMetrics.heightPixels*0.9;
int width = displayMetrics.widthPixels;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X