我试图制作一个能够顺利渲染此搜索栏的应用程序。我发现我需要一个精确的动画,将搜索栏设置为500步。我使用找到here的循环搜索栏。正如你在下面看到的那样,我在tick上的计算值是正常的,但我的搜索条只会每1秒更新一次。
在您的下方,我会看到输出日志中的计算值与搜索栏进度值不对应。
我的搜索栏以下面的方式初始化。
circularSeekbar = new CircularSeekBar(this);
circularSeekbar = (CircularSeekBar) findViewById(R.id.circularSeekBar);
circularSeekbar.setMaxProgress(500);
circularSeekbar.setProgress(50);
circularSeekbar.invalidate();
circularSeekbar.setBackGroundColor(Color.TRANSPARENT);
circularSeekbar.setRingBackgroundColor(Color.TRANSPARENT);
我的倒数计时器上升了
public void onTick(long millisUntilFinished) {
float progress = (float) millisUntilFinished / ms;
progress = 1 - progress;
progress *= 500;
circularSeekbar.setProgress((int) (progress));
circularSeekbar.invalidate();
Log.d("Progress: ", Float.toString(progress));
Log.d("Bar Progress: ", Integer.toString(circularSeekbar.getProgress()));
和我的日志,你可以看到我计算的实际进度与当前值的关系,显然没有按每个滴答更新。