歌词拖动功能的实现
我们常见的音乐播放器都具有拖动歌词改变音乐播放进度的功能,下面我们尝试通过OnTouchEvent简单化的实现。
实现原理:
(1)基于OnTouchEvent的事件处理,跟踪MotionEvent的ACTION_DOWN、ACTION_MOVE、ACTION_UP,即手指的按下、滑动、松开的过程。
(2)根据Y坐标变化的大小及歌词文本的高度可以推算出歌词应该变化的行数,
(3)根据变化的歌词行数显示相应的歌词即可实现拖动歌词的功能。
以下是onTouchEvent部分代码
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
downY=event.getY();
downTime=event.getDownTime();
break;
case MotionEvent.ACTION_MOVE:
mMoveY=event.getY()-downY;
mMove=true;
long moveTime=event.getEventTime()-downTime;
num=(int)(mMoveY/textHeight/dpi);
s
}
break;
case MotionEvent.ACTION_UP:
mMove=false;
break;
}
return true;
}