android - 如何使 Android 搜索栏顺利移动?

标签 android animation widget

我正在努力使 SeekBar 的移动比直接跳到该位置更平滑。我这样做是因为我有一个带有 3 个 slider 类型实现选项的 SeekBar。

我希望为我的应用程序中的功能创建一个带有 3 个选项"is"、“无选项”、“否”的漂亮平滑 slider ,而 SeekBar 看起来是最好和最简单的方法。

我试过查看 Android 动画,它似乎有点复杂,所以如果有人能提供任何帮助,那就太好了:)

最佳答案

我发现以下解决方案可以使搜索栏平滑移动,但仍然捕捉到有限范围的值。假设您的布局中有以下 View :

<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" />

您可以在您的 Activity 中使用以下代码(根据您的需要更改上面 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 - 如何使 Android 搜索栏顺利移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691457/

相关文章:

java - 如何从对象列表中提取元素并将其存储在字符串数组中

ios - 所有 UIView 过渡动画停止工作

android - 如何将两个 ImageView 从中心动画到彼此相对?

c++ - 使用 C++/Obj-C 创建小部件?

php - Yii2:显示没有子值的 Kartik DepDrop 小部件

android - 从 assets 文件夹中读取 txt 文件

android - Twitter - 从 webview 检索 pin 代码。安卓

Android 支持库 v4 对话框 fragment

css 圆形加载器

javascript - 需要创建 javascript 小部件的提示