先看一下读书APP的效果:

弹窗往下滑动时,顶部的指示条也会跟着向下弯曲变成箭头形状。
分析
话不多说,先来给指示条做个X光检查看看:

- 未滑动时指示条就是一个普通的圆角矩形
- 滑动时是一个箭头,箭头的两端是两个圆
指示条从点S
滑动到点T
过程中,圆L
和圆K
的切线相交形成箭头。箭头通过Path
把圆心L
、点T
、圆心K
连接起来,拐角处还需要处理为圆角,可以使用Paint
的setStrokeJoin()
方法,该方法设置线段连接处的样式,取值有三个:
java
复制代码
Paint.Join.MITER //锐角 Paint.Join.Round //圆弧 Paint.Join.BEVEL //直线
这里取Round
,该值的处理方式是以点T
为圆心、指示条高度的一半为半径画圆弧,连接拐角,如图: