我试图为我的ProgressBar
实现一个平滑的动画,但是当我增加时间(30秒)时,动画不再平滑。
5秒钟的例子:
30秒的例子:
我的进步背景:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<padding android:top="1dp" />
<solid android:color="#10444444" />
</shape>
</item>
<item>
<shape>
<padding android:top="1dp" />
<solid android:color="#20444444" />
</shape>
</item>
<item>
<shape>
<padding android:top="1dp" />
<solid android:color="#30444444" />
</shape>
</item>
<item android:id="@android:id/background">
<shape>
<solid android:color="@color/black_thirty" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#3500D0" />
</shape>
</clip>
</item>
</layer-list>
我的进度布局:
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="match_parent"
android:layout_height="8dp"
android:indeterminate="false"
android:layout_centerInParent="true"
android:progress="100"
android:progressDrawable="@drawable/my_progress_bar" />
我的动画制作方法:
private void startAnimation(){
ProgressBar mProgressBar = (ProgressBar) findViewById(R.id.pb_loading);
ObjectAnimator progressAnimator = ObjectAnimator.ofInt(mProgressBar, "progress", 100, 0);
progressAnimator.setDuration(30000);
progressAnimator.setInterpolator(new LinearInterpolator());
progressAnimator.start();
}
如果您有Android N及以上版本,您可以使用:
progressBar.setProgress(newProgress, true)
文件:
将当前进度设置为指定值,可以选择在当前值和目标值之间设置视觉位置的动画。
动画不会影响getProgress()的结果,它将在调用此方法后立即返回目标值。
https://developer.android.com/reference/android/widget/ProgressBar.html#setProgress(整型,布尔型)
因为您使用的是OFIT的,所以只能以整数移动。换句话说,如果你有一个宽度为1000,进度为0到100的进度条,因为你是以整数速度移动的,那么你可以计算1、2、3、4,这将转换为10px、20px、30px和40px。这就解释了你看到的锯齿状。
要纠正这一点,你有几个选择。第一个是将整数从0提升到一些BigInt
,这将给动画师更多的数字来处理。
ObjectAnimator progressAnimator = ObjectAnimator.ofInt(mProgressBar, "progress", 10000, 0);
另一个选项是使用ofFloat
,它与ofInt
执行相同的操作,但使用浮点而不是整数。
ObjectAnimator progressAnimator = ObjectAnimator.ofFloat(mProgressBar, "progress", 100.0, 0.0);
如果您每次将进度值更改为1(例如从45更改为46),您将看不到动画。您最好将进度更改为100点(或者其他),为此您只需要将最大值乘以100,每个进度值也乘以100。例如:
private void setProgressMax(ProgressBar pb, int max) {
pb.setMax(max * 100);
}
private void setProgressAnimate(ProgressBar pb, int progressTo)
{
ObjectAnimator animation = ObjectAnimator.ofInt(pb, "progress", pb.getProgress(), progressTo * 100);
animation.setDuration(500);
animator.setAutoCancel(true);
animation.setInterpolator(new DecelerateInterpolator());
animation.start();
}
我试图创建一个进度条,当它水平前进时,进度条本身会以垂直旋转的方式进行动画。我通过以下方式成功地使用了我的进度绘图功能: 这是我的画: 但我希望它在前进的过程中有一个微妙的滚动效果。所以看起来垂直线在向后移动。你明白了吗?非常感谢您的帮助。谢谢 编辑:我尝试创建一个动画列表作为我的进度绘图,但我仍然不能看到动画。动画列表可以在进度项目的剪辑中吗?
本文向大家介绍vue开发拖拽进度条滑动组件,包括了vue开发拖拽进度条滑动组件的使用技巧和注意事项,需要的朋友参考一下 分享一个最近写的进度条滑动组件,以前都是用jq写,学会了vue,尝试着拿vue来写觉得非常简单,代码复用性很强! 效果图如下: 调用组件如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我已经编写了一些代码,可以从高度图中渲染3D世界,现在我也编写了允许行走的代码。问题是,当高度增加时,动画几乎“跳跃”,因为每个单元都相当大。有没有一种简单的方法可以让动画更流畅?(一般来说,我对OpenGL和3D渲染非常陌生,所以我不想讨论插值和更复杂的事情。)
所以我在谷歌上搜索了这个,但我能在上面找到任何东西:我在代码中调用了这个方法 然后,我添加了一个JProgressBar,称为进度条,并在单击GUI上的按钮时调用此代码: Progresslabel只是一个显示进度的标签。现在,当我这样做时,进度条显示如下: http://i.imgur.com/gXp5ByH.png 与其他应用程序上的情况不同: http://i.imgur.com/M61Cd
本文向大家介绍js滚动条平滑移动示例代码,包括了js滚动条平滑移动示例代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js滚动条平滑移动相关代码,供大家参考,具体内容如下 html页 js页 css页 以上就是本文的全部内容,希望对大家的学习有所帮助。
我想让水平进度条从0移动到100。我在布局中添加了这段代码。我应该怎么做才能移动这个进度条?