最近在做一个小播放器用到一些简单动画效果,记录一下
效果图 一个旋转的圆形图片,右上角是帧动画
直接上代码
旋转圆形图片就是用原生的旋转属性动画RotateAnimation
//自定义圆形图片
xz = (CircleImageView) mview.findViewById(R.id.xz);
rotateAnimation = new RotateAnimation(0f,360f, Animation.RELATIVE_TO_SELF,
0.5f,Animation.RELATIVE_TO_SELF,0.5f);
LinearInterpolator lin = new LinearInterpolator();
rotateAnimation.setInterpolator(lin);//匀速
rotateAnimation.setDuration(8000);//设置动画持续时间
rotateAnimation.setRepeatCount(-1);//设置重复次数 -1不停
rotateAnimation.setFillAfter(true);//动画执行完后是否停留在执行完的状态
rotateAnimation.setStartOffset(10);//执行前的等待时间
xz.setAnimation(rotateAnimation);
rotateAnimation.startNow();
然后不停的帧动画 原理类似小时候看的小人书 很多图片重叠,产生动画的错觉
首先drawable里新建一个动画集合
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/a1w" android:duration="200">
</item>
<item android:drawable="@drawable/a1x" android:duration="200">
</item>
<item android:drawable="@drawable/a1y" android:duration="200">
</item>
<item android:drawable="@drawable/a1z" android:duration="200">
</item>
<!--根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画
根标签下,通过item标签对动画中的每一个图片进行声明
android:duration 表示展示所用的该图片的时间长度-->
</animation-list>
代码使用
//使用图片作为载体
playnow = (ImageView) findViewById(R.id.playnow);
AnimationDrawable animationDrawable = (AnimationDrawable) playnow.getDrawable();
animationDrawable.start();