android 获取webView高度,设置webView高度
生活随笔
收集整理的這篇文章主要介紹了
android 获取webView高度,设置webView高度
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、注入獲取webView高度的js方法
webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) { // view.loadUrl(url);return true;//true時,不可點擊跳頁效果,false時,可以點擊跳頁}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {}@Overridepublic void onPageFinished(WebView view, String url) {view.getSettings().setJavaScriptEnabled(true);webView.loadUrl("javascript:window.yxbl_app.getBodyHeight($(document.body).height())");//注入自定義方法——獲取webview高度的方法super.onPageFinished(view, url);}});?
?
2、調(diào)用已注入的js方法獲取webview的高度
public static final String js2Android = "yxbl_app"; private int webViewHeight; webView.loadUrl("https://www.csdn.net/");webView.addJavascriptInterface(new WebViewJavaScriptFunction() {@Overridepublic void onJsFunctionCalled(String tag) {// TODO Auto-generated method stub}/*** 高度*/@JavascriptInterfacepublic void getBodyHeight(String number) {webViewHeight = Integer.parseInt(number.split("[.]")[0]);Log.i("lgqqqqq====== ", "webViewHeight" + webViewHeight);Message msg = new Message();msg.what = 1;handler.sendMessage(msg);//用activity中的handler發(fā)送消息} },js2Android);?
3、設(shè)置webView高度
@SuppressLint("HandlerLeak") private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch(msg.what){case 1 :LinearLayout.LayoutParams linearParams2 =(LinearLayout.LayoutParams)webView.getLayoutParams(); //取控件textView當前的布局參數(shù)linearParams2.height = (int)(webViewHeight*getResources().getDisplayMetrics().density)/2;// 控件的高強制設(shè)成20webView.setLayoutParams(linearParams2);break;}} };?
?
總結(jié)
以上是生活随笔為你收集整理的android 获取webView高度,设置webView高度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用requests下载视频
- 下一篇: 关于HttpUrlConnection网