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

先上结论:大部分文章里宣称采用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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,855评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 手机qq里面发送小视频有个功能是,分段录制视频,就是录制的时候,可以停下来,然后再接着录。这个功能目前被我们的项目...
    毛神阅读 4,308评论 0 4
  • 最近,耳机里放的,总是阿桑那首《寂寞在唱歌》,即使开着MINI COOPER在黑暗里夜行也没有间断。我在车...
    向前看祁阅读 2,435评论 0 0
  • 冬天的枯枝早已开花 小小的的种子也发了芽 慢慢的成长都有了风华 岁月里静静绽放 太阳落下的时候 慵散的余晖倾洒 生...
    若漓阅读 2,047评论 2 2

友情链接更多精彩内容