//seekbarLayout 是seekBar对象statusSeekbar的父层布局
seekbarLayout = mStatusViewLayout.findViewById(R.id.id_seekbar_layout);
seekbarLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Rect seekRect = new Rect();
statusSeekbar.getHitRect(seekRect);
if ((event.getY() >= (seekRect.top - 500)) && (event.getY() <= (seekRect.bottom + 500))) {
float y = seekRect.top + seekRect.height() / 2;
//seekBar only accept relative x
float x = event.getX() - seekRect.left;
if (x < 0) {
x = 0;
} else if (x > seekRect.width()) {
x = seekRect.width();
}
MotionEvent me = MotionEvent.obtain(event.getDownTime(), event.getEventTime(),
event.getAction(), x, y, event.getMetaState());
return statusSeekbar.onTouchEvent(me);
}
return false;
}
});
转载于:https://my.oschina.net/u/248383/blog/3004212
本文介绍了一种SeekBar在触摸屏设备上的优化方法,通过自定义OnTouchListener实现更精确的触控反馈。具体包括如何获取SeekBar的位置信息,以及如何将触摸位置转换为SeekBar的有效输入。

1014

被折叠的 条评论
为什么被折叠?



