用clipPath来做放大镜功能

移动开发 码拜 8年前 (2017-05-03) 1700次浏览
本人现在在做一个放大镜的功能,现在功能实现了。
但是本人想在放大显示区域的中间画一个十字准星。
但是现在通过canvas.clipPath来实现的局部放大会覆盖draw的准星。
问一下高手有什么办法解决吗?

放大镜的代码:

                p.setStrokeWidth(4);
				p.setStyle(Paint.Style.STROKE);// 空心圆
				p.setColor(Color.argb(255, 255, 255, 255));
				p.setAntiAlias(true);
				canvas.drawCircle(RADIUS + 5, RADIUS + 5, RADIUS + 2, p);
				canvas.drawLine(RADIUS-5,RADIUS + 5,RADIUS + 15,RADIUS + 5, p);
				canvas.drawLine(RADIUS+5,RADIUS-5,RADIUS + 5,RADIUS + 15, p);



				mPath.addCircle(RADIUS + 5, RADIUS + 5, RADIUS, Direction.CW);
				matrix.postScale(FACTOR, FACTOR);
//				 canvas.translate(onTouchX - RADIUS, onTouchY - RADIUS);//放大镜跟随坐标移动
				canvas.clipPath(mPath);
				// 画放大后的图
				canvas.translate(RADIUS - onTouchX * FACTOR + 5, RADIUS - onTouchY * FACTOR + 5);
				canvas.drawBitmap(bitmap, matrix, null);
解决方案

10

用clipPath来做放大镜功能

15

用clipPath来做放大镜功能

15

用clipPath来做放大镜功能

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明用clipPath来做放大镜功能
喜欢 (0)
[1034331897@qq.com]
分享 (0)