垂直的SeekBar探讨

来源:互联网 发布:淘宝达人佣金 编辑:程序博客网 时间:2024/06/10 06:05

        上课做MediaPlayer需要用到垂直的SeekBar做音量控制,google之后找到解决方法:http://stackoverflow.com/questions/3333658/how-to-make-a-vertical-seekbar-in-android/8893285#8893285

  1. For API 11 and later, can use seekbar's XML attributes(android:rotation="270") for vertical effect.

    <SeekBarandroid:id="@+id/seekBar1"android:layout_width="match_parent"android:layout_height="wrap_content"android:rotation="270"/>
  2. For older API level (ex API10), only use Selva's answer:
    https://github.com/AndroSelva/Vertical-SeekBar-Android

        因为环境是API LEVEL4,所以解决方案一用不上,只能使用解决方案2。在解决方案2中,主要使用了一个自定义类来继承SEEKBAR,然后重写onDraw方法,来逆时针转动90度,即-90度来实现垂直。具体的代码是在:https://github.com/AndroSelva/Vertical-SeekBar-Android/blob/master/sample/src/android/widget/VerticalSeekBar.java

        但是功能效果OK,外观上不知道怎么回事有缺陷,即在使用过程中,如果是拖动进度条操作没有问题,但是如果用外部按钮来控制该SeekBar会发生滑块移动和进度条改变没有保持一致,即进度条上升下降的步长远远大于滑块的步长。这个问题还有待研究,不知道是按钮代码问题还是进度条自身的问题。所以未完待续……