【发布时间】:2011-02-03 21:56:08
【问题描述】:
我已经实现了常用的 VerticalSeekBar 帖子 here。事实上,SeekBar 的操作有点古怪。这是我从那个例子中稍微改编的onTouchEvent():
public boolean onTouchEvent(MotionEvent event)
{
xPos = event.getX();
yPos = event.getY();
oOffset = this.getThumbOffset();
oProgress = this.getProgress();
//Code from example - Not working
//this.setThumbOffset( progress * (this.getBottom()-this.getTop()) );
this.setProgress((int)(29*yPos/this.getBottom()));
return true;
}
我已经成功实现了一个 VerticalSeekBar,其中的进度按预期更新并且功能齐全,但拇指没有效仿。这只是一个图形故障,所以我现在忽略它。但是, 要是能正常工作就好了。这个 SeekBar 有max = 20。
但是,我尝试使用max = 1000 实现另一个 VerticalSeekBar。显然,它使用相同的代码,所以你会假设相同的行为。即使我的手指滑过 SeekBar 并最终离开屏幕,我也只能取得 0~35 的进度。如果我只是在进度条的末尾附近点击(应该是progress ~ 900),它会返回大约 35 的进度,黄色进度条通过停留在顶部附近来反映该值。
我的问题是:有没有人有一个可以工作的垂直 SeekBar 的链接,或知道如何调整这个特定的例子?
【问题讨论】: