目的
为避免技术脱离现实发展,专门给自己安排一个“项目”,也可以说是“作业”,就是时不时地模仿一些主流的,热门的app的UI元素。此项目将在我的github上开源,地址【https://github.com/ykisme/PatternUI】。
微信OptionsMenu
这个是模仿的微信主页的OptionsMenu,使用PopupWindow实现,支持暗黑模式,主要难点是背景的小三角形。通过逆向提取.9图总不能适配得特别好,只好使用自定义drawable,这里怀疑微信就是这么做的。难点是微信的三角是圆角的,有一点弧度,这里使用贝塞尔曲线绘制角的弧度。
后来了解到根本不用那么复杂地使用贝塞尔曲线,android已经提供了相应的API来处理Path的拐角处圆滑化的操作,详情可参见这个博客。