Webview如何设置才能实现两个手指缩放网页?

重写ONTOUCH方法,下面是我以前DEMO自己写的缩放,你可以让他再完美一些
@Override
//        public boolean onTouch(View v, MotionEvent event) {
//                // TODO Auto-generated method stub
//                switch (event.getAction()) {
//                case MotionEvent.ACTION_POINTER_2_DOWN:
//                        if (event.getPointerCount() == 2) {
//                                for (int i = 0; i < event.getPointerCount(); i++) {
//                                        if (i == 0) {
//                                                OldX1 = event.getX(i);
//                                                OldY1 = event.getY(i);
//                                        } else if (i == 1) {
//                                                OldX2 = event.getX(i);
//                                                OldY2 = event.getY(i);
//                                        }
//                                }
//                        }
//                        break;
//                case MotionEvent.ACTION_MOVE:
//                        if (event.getPointerCount() == 2) {
//                                for (int i = 0; i < event.getPointerCount(); i++) {
//                                        if (i == 0) {
//                                                NewX1 = event.getX(i);
//                                                NewY1 = event.getY(i);
//                                        } else if (i == 1) {
//                                                NewX2 = event.getX(i);
//                                                NewY2 = event.getY(i);
//                                        }
//                                }
//                                float disOld = (float) Math.sqrt((Math.pow(OldX2 - OldX1, 2) + Math.pow(
//                                                OldY2 - OldY1, 2)));
//                                float disNew = (float) Math.sqrt((Math.pow(NewX2 - NewX1, 2) + Math.pow(
//                                                NewY2 - NewY1, 2)));
//                                Log.d("onTouch","disOld="+disOld+"|disNew="+disNew);
//                                if (disOld - disNew >= 25) {
//                                        // 缩小
//                                        mWebView.zoomOut();
//                                       
//                                } else if(disNew - disOld >= 25){
//                                        // 放大
//                                        mWebView.zoomIn();
//                                }
//                                OldX1 = NewX1;
//                                OldX2 = NewX2;
//                                OldY1 = NewY1;
//                                OldY2 = NewY2;
//                        }
//                }
//
//                return false;
//        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Kotlin 编写的设置 WebView 替换网址的请求以控制缩放行为的示例代码: ```kotlin import android.annotation.SuppressLint import android.os.Bundle import android.webkit.WebView import android.webkit.WebViewClient import androidx.appcompat.app.AppCompatActivity class WebViewActivity : AppCompatActivity() { private var webView: WebView? = null @SuppressLint("SetJavaScriptEnabled") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_web_view) webView = findViewById(R.id.webView) webView?.settings?.javaScriptEnabled = true // 允许 WebView 使用 JavaScript webView?.settings?.builtInZoomControls = true // 启用 WebView 内置的缩放控件 webView?.settings?.displayZoomControls = false // 隐藏 WebView 内置的缩放控件 webView?.webViewClient = object : WebViewClient() { override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { url?.let { // 替换掉原本的 URL val replacedUrl = replaceUrl(url) // 加载新的 URL view?.loadUrl(replacedUrl) } return true } } // 加载初始 URL webView?.loadUrl("https://www.example.com") } /** * 替换 URL 的方法 */ private fun replaceUrl(url: String): String { // 此处是一个示例,可以根据需要自行实现 URL 替换的逻辑 return url.replace("example", "replaced") } override fun onBackPressed() { if (webView?.canGoBack() == true) { webView?.goBack() } else { super.onBackPressed() } } override fun onDestroy() { webView?.destroy() super.onDestroy() } } ``` 在该示例中,我们创建了一个 WebView,启用了 JavaScript 和内置的缩放控件,并隐藏了内置的缩放控件。在 WebViewClient 的 shouldOverrideUrlLoading 方法中,我们对 URL 进行了替换,然后加载新的 URL。同时,我们还实现了返回键的逻辑,在 WebView 可以返回的情况下返回上一个页面。最后,在 Activity 销毁时,我们调用了 WebView 的 destroy 方法,以释放资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值