上一篇实现了竖向的滚轮选择器,造轮子:滚轮选择器实现及原理解析(一)基于此,本篇我们实现一个横向的角度选择器,原理相同先看效果功能拆分滚动方向调整为横向需要显示刻度,且特定位置的刻度加粗加长,并显示对应数字中心位置显示当前选中刻度的值,且会遮挡住刻度刻度整体需要有渐变效果,越靠近两边透明度越低,越靠近中心透明度也越低实现步骤这里只考虑思路与实现逻辑,及原竖向逻辑的可扩展性,没有封装如果有感兴趣的可以基于我的代码二次封装调整方向这个很简单了,就是手动工作量的问题将所有涉及X,Y相关的命名及赋值的地方互换,width与height互换即可,完成后可以看到直接变成了横向滚动逻辑完全相同,只是涉及变量的处理不同刻度调整理论上指针指到任意刻度都可悬停并返回对应值,也就是说刻度是真实存在的数据,只是部分刻度不绘制对应的值而已接下来将itemWidth设置为5dp,并且单边可显示个数增大到50,得到以下的效果,注意需要替换原本绘制文本的逻辑为绘制方块// 在原本绘制文本的地方改为绘制宽6高8的方块
canvas.drawRect(width /2f -3, height/2f - 4, width/2f +3, height/2f +4, linePaint);装点刻度对于特定刻度需要使其变得更长,且要有文字提示// Acitvity
// 传入的数据每隔15设置一个字串进去,当然你也可以自行构
...
继续阅读
(50)