最近在做一個小播放器用到一些簡單動畫效果,記錄一下
效果圖 一個旋轉(zhuǎn)的圓形圖片,右上角是幀動畫
直接上代碼
旋轉(zhuǎn)圓形圖片就是用原生的旋轉(zhuǎn)屬性動畫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);//設(shè)置動畫持續(xù)時間
rotateAnimation.setRepeatCount(-1);//設(shè)置重復(fù)次數(shù) -1不停
rotateAnimation.setFillAfter(true);//動畫執(zhí)行完后是否停留在執(zhí)行完的狀態(tài)
rotateAnimation.setStartOffset(10);//執(zhí)行前的等待時間
xz.setAnimation(rotateAnimation);
rotateAnimation.startNow();
然后不停的幀動畫 原理類似小時候看的小人書 很多圖片重疊隘击,產(chǎn)生動畫的錯覺
首先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>
<!--根標(biāo)簽為animation-list,其中oneshot代表著是否只展示一遍喘沿,設(shè)置為false會不停的循環(huán)播放動畫
根標(biāo)簽下闸度,通過item標(biāo)簽對動畫中的每一個圖片進行聲明
android:duration 表示展示所用的該圖片的時間長度-->
</animation-list>
代碼使用
//使用圖片作為載體
playnow = (ImageView) findViewById(R.id.playnow);
AnimationDrawable animationDrawable = (AnimationDrawable) playnow.getDrawable();
animationDrawable.start();