多点触控改变WebView字体大小

实现多个手机操作字体放大缩小,需要重写dispatchTouchEvent方法。直接上代码:


public boolean dispatchTouchEvent(MotionEvent event) { String fontSize = getSharedPreference("fontSize","normal");//代表储存的字体大小 double startLength; int eventNum = event.getPointerCount();//获得参与操作的手指数目 if((event.getAction()&MotionEvent.MASK)==MotionEvent.ACTION_POINTER_DOWN&&eventNum==2)//保证两个手指在缩放 { int sqrtX = Math.abs((int)event.getX(0)-(int)event.getX(0));//获取初始位置横向偏移,取绝对值 int sqrtY = Math.abs((int)event.getY(0)-(int)event.getY(0));//获取初始位置纵向偏移 startLength = Math.sqrt((double)sqrtX*sqrtX+(double)sqrtY*sqrtY);//求得偏移的直线距离,开方 } else if((event.getAction&MotionEvent.MASK)==MotionEvent_POINTER_UP &&eventNum==2) { int sqrtX = Math.abs((int)event.getX(0)-(int)event.getX(0));//获取初始位置横向偏移,取绝对值 int sqrtY = Math.abs((int)event.getY(0)-(int)event.getY(0));//获取初始位置纵向偏移 double endLength = Math.sqrt((double)sqrtX*sqrtX+(double)sqrtY*sqrtY);//求得偏移的直线距离,开方 //ws是WebView实例 if(endLength>startLength)//表示放大文字 { if (fontSize.equals("smaller")) { ws.setTextSize(WebSettings.TextSize.NORMAL); fontSize = "normal"; } else if (fontSize.equals("normal")) { ws.setTextSize(WebSettings.TextSize.LARGER); fontSize = "larger"; } else if (fontSize.equals("larger")) { ws.setTextSize(WebSettings.TextSize.LARGEST); fontSize = "largest"; } else if (fontSize.equals("largest")) { ws.setTextSize(WebSettings.TextSize.LARGEST); fontSize = "largest"; } } else//表示缩小字体 { if(fontSize.equals("normal")) { ws.setTextSize(WebSettings.TextSize.SMALLER); fontSize = "smaller"; } else if(fontSize.equals("larger")) { ws.setTextSize(WebSettings.TextSize.NORMAL); fontSize = "normal"; } else if(fontSize.equals("largest")) { ws.setTextSize(WebSettings.TextSize.LARGER); fontSize = "larger"; } else if(fontSize.equals("smallest"))//保持不变 { ws.setTextSize(WebSettings.TextSize.smallest); fontSize = "smallest"; } } } return super.dispatchTouchEvent(event); }

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。