开发中遇到扫描蓝牙动画需求,如下图所示:
因此以下简单记录一下,方便以后使用。
Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。
我用了一个ConstraintLayout布局将要旋转的部分包括起来。
在res/anim文件夹下新建l,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android=""><rotateandroid:duration="1500"android:fromDegrees="360"android:pivotX="50%"android:pivotY="50%"android:repeatCount="-1"android:repeatMode="restart"android:toDegrees="0" /><!--参数的含义duration:表示从android:fromDegrees转动到android:toDegrees所花费的时间fromDegrees="0": 起始的角度度数toDegrees="359" : 结束的角度度数pivotX="50%:旋转中心距离view的左顶点为50%距离,pivotY="50%: 距离view的上边缘为50%距离repeatCount="-1":重复次数,-1为一直重复repeatMode="restart":重复模式,restart从头开始重复,reverse即从结束开始向前重新运行实际效果为顺逆时针交替未用到属性:android:interpolator表示变化率,但不是运行速度。一个插补属性,可以将动画效果设置为加速,减速,反复,反弹等。默认为开始和结束慢中间快,android:startOffset 在调用start函数之后等待开始运行的时间,单位为毫秒,若为10,表示10ms后开始运行-->
</set>
//开始旋转Animation animation = AnimationUtils.loadAnimation(this,ation_animation);LinearInterpolator lin = new LinearInterpolator();//设置动画匀速运动animation.setInterpolator(lin);clRotation.startAnimation(animation);//停止旋转clRotation.clearAnimation();
@Override
public void onConfigurationChanged(Configuration newConfig) { ConfigurationChanged(newConfig); if (animation != null && clRotation != null && animation.hasStarted()) { clRotation.clearAnimation(); clRotation.startAnimation(animation); }
}
本文发布于:2024-01-31 00:05:57,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170663075823807.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |