如何让Android搜索栏顺利移动?

我正在努力使一个SeekBar的移动更顺利,而不是直接跳到这个位置.我这样做,因为我有一个SeekBar,有3个选项用于滑块类型的实现.

我正在寻找一个很好的平滑滑块,有3个选项“是”,“无选项”,“否”,我的应用程序中的功能和SeekBar看起来最好最简单的方法.

我试过看看Android动画,似乎有点复杂,所以如果任何人可以有任何帮助,将是很好:)

解决方法

我找到了以下解决方案,使搜索引擎平稳运行,但仍然捕捉到有限的价值范围.假设您的布局中有以下视图:
<SeekBar
  android:id="@+id/sldProgress"
  style="@style/MySliderStyle"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:max="100"
  android:progress="50" />

<TextView
  android:id="@+id/lblProgress"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="5" />

您可以在活动中使用以下代码(在上述xml中更改android:max的值,根据需要更改下面代码中的平滑因子) – 更高的值=更平滑):

public class MyActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    sliderListener sldListener = new sliderListener();
    SeekBar sldProgress = (SeekBar) findViewById(R.id.sldProgress);
    sldProgress.setonSeekBarchangelistener(sldListener);
  }
  private class sliderListener implements OnSeekBarchangelistener {
    private int smoothnessFactor = 10;
    public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser) {
      progress = Math.round(progress / smoothnessFactor);
      TextView lblProgress = (TextView) findViewById(R.id.lblProgress);
      lblProgress.setText(String.valueOf(progress));
    }

    public void onStartTrackingTouch(SeekBar seekBar) {
    }

    public void onStopTrackingTouch(SeekBar seekBar) {
      seekBar.setProgress(Math.round((seekBar.getProgress() + (smoothnessFactor / 2)) / smoothnessFactor) * smoothnessFactor);
    }
  }
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...