android 获取webView高度,设置webView高度

注入获取webView高度的js方法

activityBaseWebAddWebView.loadUrl("javascript:window.yxbl_app.getBodyHeight($(document.body).height())");

调用

public static final String js2Android = "yxbl_app";
private int webViewHeight;


  activityBaseWebAddWebView.addJavascriptInterface(new WebViewJavaScriptFunction() {

            @Override
            public void onJsFunctionCalled(String tag) {
                // TODO Auto-generated method stub

            }
            /**
             * 高度
             */
            @JavascriptInterface
            public void getBodyHeight(String number) {
                webViewHeight =  Integer.parseInt(number.split("[.]")[0]);
                Log.i("lgqqqqq======  ", "webViewHeight" + webViewHeight);

//                Message msg = Message.obtain(null, 6, 0, 0);
                Message msg = new Message();
                msg.what = 1;
                msg.arg1 = webViewHeight;
                handler.sendMessage(msg);
//                ScrollView.LayoutParams linearParams =(ScrollView.LayoutParams) neili.getLayoutParams(); //取控件textView当前的布局参数
//
////                linearParams.width = 40;// 控件的宽强制设成30
//                linearParams.height =a/2;// 控件的高强制设成20
//
//                neili.setLayoutParams(linearParams);

            }

            @JavascriptInterface
            public void shareToApp(String title, String content, String imgUrl, String url) {
            }

            /**
             * 测试坐标上传是否成功
             *
             * @param latitude
             * @param longitude
             */
            @JavascriptInterface
            public void outLocation(String latitude, String longitude) {
                System.out.println("javascript输出:" + latitude + "  " + longitude);
            }

        }, CommonString.js2Android);


设置webView高度


    @SuppressLint("HandlerLeak")
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 1) {

                LinearLayout.LayoutParams linearParams2 =(LinearLayout.LayoutParams) activityBaseWebAddWebView.getLayoutParams(); //取控件textView当前的布局参数
//                linearParams.width = 40;// 控件的宽强制设成30
//                linearParams2.height =webViewHeight*3;// 控件的高强制设成20
                Logger.e(getResources().getDisplayMetrics().density + "");
                linearParams2.height = (int)(webViewHeight*getResources().getDisplayMetrics().density)/2;// 控件的高强制设成20
                activityBaseWebAddWebView.setLayoutParams(linearParams2);
            }
        }
    };

猜你喜欢

转载自blog.csdn.net/meixi_android/article/details/79649890