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.
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.
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();
}
});
}
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(););
}
});
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.
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 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.