美文网首页AndroidUIAndroid知识Android技术知识
垂直SeekBar,没有想的那么简单

垂直SeekBar,没有想的那么简单

作者: 凌峰 | 来源:发表于2017-03-14 18:50 被阅读661次

先上结论:大部分文章里宣称采用canvas.roate(-90); canvas.translate(-getHeight(),0)至少在5.0版本以上是搞不定的。

垂直的SeekBar是一个天坑,建议直接采用这个开源库: VerticalSeekBar

接下来解释一下实现垂直SeekBar会遇到的两个问题。

  1. 在旋转canvas的情形下直接setProgress不会成功。原因可能是父类中setProgress不能被主动调用。库中采用了反射的方式,请自行查阅。

  2. Lollipop版本以上的系统不能用重写onTouchEvent的方式来实现控件垂直,问题在这里

bug.png

图中灰色的圆点原本应当和thumb重合。但当canvas旋转90度之后,这个点并没有随着canvas旋转,而是系统单独绘制的。因此,上述的库对高版本的系统采用了直接旋转整个View。

相关文章

网友评论

    本文标题:垂直SeekBar,没有想的那么简单

    本文链接:https://www.haomeiwen.com/subject/rtohnttx.html