java - Android SeekBar 抖动

标签 java android media-player seekbar

我还没有看到这个问题在 SO 中被提及,所以就这样吧。我有一个搜索栏,可以防止搜索超出次要进度(在本例中为音乐缓冲)。假设这首歌长 5 分钟,已缓冲 4 分​​钟,并且正在一分钟标记处播放。当我去拖动拇指时,它会很好地拖动和下降。问题是,当我停止拖动(不释放)然后再次拖动时,拇指会从当前播放位置(1 分钟)快速跳到我拖动拇指的位置。当我释放时,一切都很好,只是拖动拇指的问题。这是我的搜索栏监听器......

private SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {

    public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {

        int secondaryPosition = seekBar.getSecondaryProgress();
        if (progress > secondaryPosition) {
            seekBar.setProgress(secondaryPosition-1);
        }
    }

    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    public void onStopTrackingTouch(SeekBar seekBar) {
        seekMediaPlayerToSeekBarTouch(seekBar);
    }

};

最佳答案

我猜您有一个 HandlerThread 来更新 SeekBar?我建议设置一个基本检查来查看用户是否正在处理 SeekBar,这样在处理 SeekBar 时就不会继续尝试重绘 SeekBar 的拇指。只需在 onStartTrackingTouch() 方法中设置一个 boolean 值,例如将 mSeekbarTracking 设置为 true,然后在 SeekBar 更新程序中检查 mSeekbarTracking 在尝试更新之前为 false。

我不知道这是否能解决您的所有问题。也许您可以尝试一下,看看它如何影响您的问题。如果您发布用于更新 SeekBar 的代码,这可能会对我们有所帮助。

干杯

关于java - Android SeekBar 抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640524/

相关文章:

java - 如何获取输入并保存到数组中然后打印数组输入?

java - 当我在浏览器上测试时,php 必填字段丢失,它们显示该消息

android - 如何通过MediaPlayer播放一次铃声?

android 媒体播放器 - 如何禁用范围请求? (Nexus 7 上的音频流中断)

android - MediaPlayer OnCompletionListener导致错误

java - 创建处理时间的自定义 java 类

java - 使用 Jackson 将 json 嵌入节点作为值反序列化到 Map 中

java - org.json.JSONException : Value <html><body>&lt;script of type java. lang.String 无法转换为 JSONObject

android - 如何在 Visual Studio-Xamarin 中为 axml 文件启用智能感知?

java - 如何删除 AbsoluteLayout id?