Android Seekbar thumb onclick监听器

标签 android android-seekbar

我已经制作了我的音乐应用程序,现在我需要在搜索栏上制作音乐播放/暂停控件。这是图片 enter image description here

如您所见,seekbar 带有自定义拇指图像,当用户触摸拇指音乐时,音乐开始播放或停止。是否可以实现类似的功能?基本上我只需要为 seekbar thumb 实现监听器。我知道如何从 seekbar 获取拇指,但是拇指是 drawable 所以我无法实现任何监听器。 audioSeekBar.getThumb()

最佳答案

您应该监听 touchEvent,计算触摸在搜索栏拇指上的位置,并防止在用户移动搜索栏但未点击时调用点击事件。

像这样:

seekBar.setOnTouchListener(new View.OnTouchListener() {

        float prevX = Float.MIN_VALUE;
        float eps = 0.001f;

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            Drawable drawable = seekBar.getThumb();

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                if (event.getX() >= drawable.getBounds().left && event.getX() <= drawable.getBounds().right
                        && event.getRawY() >= drawable.getBounds().top && event.getRawY() >= drawable.getBounds().bottom) {
                    prevX = event.getX();
                }
            }

            if (event.getAction() == MotionEvent.ACTION_UP) {

                if (event.getX() >= drawable.getBounds().left && event.getX() <= drawable.getBounds().right
                        && event.getRawY() >= drawable.getBounds().top && event.getRawY() >= drawable.getBounds().bottom) {
                    if (Math.abs(event.getX() - prevX) < eps) {
                        Log.d("here", "clicked on place");
                    }
                }
                prevX = Float.MIN_VALUE;
            }

            return false;
        }
    });
}

关于Android Seekbar thumb onclick监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39978801/

相关文章:

android - 如何从服务中运行的 MediaPlayer 更新 SeekBar?

android - 无法使用 Appium 移动 Android SeekBar

android - 移动应用程序和 WooCommerce WordPress 网站数据同步

android - PageViewer 内的 GridView 有滞后滚动

java - 如何在首次运行时填充大型 SQLite 数据库

android - 如何设置用户已选择的搜索栏值

android - 为什么我的 SeekBar 没有更新?

android - SeekBar 拇指(9 补丁)无法识别

java - 我想将 Android Studio map 中的蓝点更改为箭头

android - 如何在 Android XML 中创建动态变化的云形语音气泡