Android Seekbar拇指点击监听器
我已经制作了我的音乐应用程序,现在我需要在seekbar上进行音乐播放/暂停控制。这是图片Android Seekbar拇指点击监听器,android,android-seekbar,Android,Android Seekbar,我已经制作了我的音乐应用程序,现在我需要在seekbar上进行音乐播放/暂停控制。这是图片 如您所见,有带有自定义拇指图像的seekbar,当用户触摸拇指音乐开始播放或停止时,是否可以实现类似的功能?基本上,我只需要为seekbarthumb实现侦听器。我知道如何从seekbar获取thumb,但是thumb是可绘制的,因此我无法实现任何侦听器audioSeekBar.getThumb()您应该侦听touchEvent,计算触摸在seekbar拇指上的位置,并防止在用户移动seekbar但未单击
如您所见,有带有自定义拇指图像的
seekbar
,当用户触摸拇指音乐开始播放或停止时,是否可以实现类似的功能?基本上,我只需要为seekbar
thumb实现侦听器。我知道如何从seekbar
获取thumb,但是thumb是可绘制的
,因此我无法实现任何侦听器audioSeekBar.getThumb()
您应该侦听touchEvent,计算触摸在seekbar拇指上的位置,并防止在用户移动seekbar但未单击时调用click事件
像这样的事情:
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;
}
});
}
seekBar.setOnTouchListener(新视图.OnTouchListener(){
float prevX=float.MIN_值;
浮子eps=0.001f;
@凌驾
公共布尔onTouch(视图v,运动事件){
Drawable Drawable=seekBar.getThumb();
if(event.getAction()==MotionEvent.ACTION\u向下){
如果(event.getX()>=drawable.getBounds().left&&event.getX()=drawable.getBounds().top&&event.getRawY()>=drawable.getBounds().bottom){
prevX=event.getX();
}
}
if(event.getAction()==MotionEvent.ACTION\u UP){
如果(event.getX()>=drawable.getBounds().left&&event.getX()=drawable.getBounds().top&&event.getRawY()>=drawable.getBounds().bottom){
if(Math.abs(event.getX()-prevX)
seekbarchaneglistener怎么办?@Opiatefuchsseekbarchaneglistener
触碰seekbar时会触发我需要的是知道什么时候触碰seekbar拇指真的像这样特别吗?所以你想添加一个在按下seekbar时不会发生的功能,只有在按下拇指时才会发生,对吗?@Opiatefuchs,是的,这正是我需要的。所以没有这样的方法,但我想你可以通过监视位置来解决问题。例如,制作一个onTouchListener,它允许查找运动事件是否为ACTION\u MOVE,并收听ACTION\u DOWN/ACTION\u UP。。。。。。