我制作了音乐应用程序,现在我需要在搜索栏上进行音乐播放/暂停控制。这是图像
正如你所看到的那样seekbar
有自定义拇指图像,当用户触摸拇指音乐开始播放或停止时,是否可以实现类似的东西?基本上我只需要为seekbar
拇指实现监听器。我知道如何从drawable
获取拇指,但拇指是audioSeekBar.getThumb()
,所以我无法实现任何监听器。 select a.*,
case when b.DuplicateOf is null then 0 else 1 end 'Duplicity'
from myTable a
outer apply (
Select top 1 id 'DuplicateOf'
from myTable
where id <> a.id
and Value_my = a.Value_my
and Date_my = a.Date_my
)b
答案 0 :(得分:1)
你应该听touchEvent,计算触摸在seekbar拇指上的位置,并防止在用户移动搜索栏但未点击时调用点击事件。
像这样: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;
}
});
}