Android SeekBar - 独立于进度条更改ScrollBar值

时间:2012-04-09 05:03:42

标签: java android user-interface seekbar

我正在尝试使用SeekBar来表示两条信息:

  1. 用户可以设置的录音阈值。
  2. 用户无法设置的传入音频级别。
  3. 我想使用用户触摸输入来更改ScrollBar的{​​{1}},表示所需的阈值。进度颜色条将由我以编程方式设置,以显示音频级别,与SeekBar位置无关,并且不受用户输入的影响。

    我尝试过使用ScrollBarSeekBar.setScrollX(int),但是文档说这些调用会使视图无效,当调用其中一个函数时,程序确实会崩溃。

    这是touchEvent代码:

    SeekBar.setScrollY(int)

    这是我正在使用的简单测试onScrollChanged函数。请注意,如果未覆盖NoSuchMethodFoundError仍会发生。

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (!isEnabled()) {
            return false;
        }
    
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
            case MotionEvent.ACTION_MOVE:
            case MotionEvent.ACTION_UP:
                setProgress(getMax() - (int) (getMax() * event.getY() / getHeight()));
                setScrollX(50); // this causes a MethodNotFoundError
                onSizeChanged(getWidth(), getHeight(), 0, 0);                
                break;
    
            case MotionEvent.ACTION_CANCEL:
                break;
        }
        return true;
    }
    

0 个答案:

没有答案