先看一下读书APP的效果:
弹窗往下滑动时,顶部的指示条也会跟着向下弯曲变成箭头形状。
分析
话不多说,先来给指示条做个X光检查看看:
- 未滑动时指示条就是一个普通的圆角矩形
- 滑动时是一个箭头,箭头的两端是两个圆
指示条从点S滑动到点T过程中,圆L和圆K的切线相交形成箭头。箭头通过Path把圆心L、点T、圆心K连接起来,拐角处还需要处理为圆角,可以使用Paint的setStrokeJoin()方法,该方法设置线段连接处的样式,取值有三个:
java
复制代码
Paint.Join.MITER //锐角 Paint.Join.Round //圆弧 Paint.Join.BEVEL //直线
这里取Round,该值的处理方式是以点T为圆心、指示条高度的一半为半径画圆弧,连接拐角,如图:

文章详细介绍了如何在读书APP中创建一个弹窗,当滑动时顶部的指示条会弯曲成箭头形状。通过分析和实现过程,解释了利用Path和Paint的setStrokeJoin方法处理圆角,以及根据弯曲比例计算高度和绘制图形的方法。最终通过调整弯曲比例实现动态效果。
最低0.47元/天 解锁文章
596

被折叠的 条评论
为什么被折叠?



