获取SeekBar触摸位置(无进度变化)
Get SeekBar touch position (without progress change)
我有一个简单的离散 SeekBar
表示从 0 到 10 的级数。
SeekBar
的进度以编程方式定义,因此我禁用了触摸事件以防止用户更改其当前位置:
mSeekBar.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;
}
});
但是,我需要获取用户在 SeekBar
上触摸的位置(无论其当前进度如何)。
基本上,如果用户触摸第一个 "dot",他会去一个 activity,如果他触摸第二个,他会去另一个,等等......但是 none这些操作应该改变 SeekBar
.
的当前状态
我怎样才能做到这一点?
我没有找到任何方法来实现我想要的,所以我不得不找到一个小的解决方法。
我刚刚在另一个上面添加了第二个不可见的 SeekBar
,仅用于使用 onSeekBarChangedListener
处理触摸事件。
为了让它透明,我使用了:
android:progressDrawable="@android:color/transparent"
另一个SeekBar
和之前一样使用,只是显示进度信息。这样我就必须分开行为。
要获取您在搜索栏中触摸的位置,请使用
int a=seekbar.getProgress()。
enter image description here
setTemperature.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
int a= seekbar.getProgress()
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
我不是这样做的:
seekBar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
return false;
}
});
希望对您有所帮助
我有一个简单的离散 SeekBar
表示从 0 到 10 的级数。
SeekBar
的进度以编程方式定义,因此我禁用了触摸事件以防止用户更改其当前位置:
mSeekBar.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;
}
});
但是,我需要获取用户在 SeekBar
上触摸的位置(无论其当前进度如何)。
基本上,如果用户触摸第一个 "dot",他会去一个 activity,如果他触摸第二个,他会去另一个,等等......但是 none这些操作应该改变 SeekBar
.
我怎样才能做到这一点?
我没有找到任何方法来实现我想要的,所以我不得不找到一个小的解决方法。
我刚刚在另一个上面添加了第二个不可见的 SeekBar
,仅用于使用 onSeekBarChangedListener
处理触摸事件。
为了让它透明,我使用了:
android:progressDrawable="@android:color/transparent"
另一个SeekBar
和之前一样使用,只是显示进度信息。这样我就必须分开行为。
要获取您在搜索栏中触摸的位置,请使用
int a=seekbar.getProgress()。 enter image description here
setTemperature.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
int a= seekbar.getProgress()
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
我不是这样做的:
seekBar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
return false;
}
});
希望对您有所帮助