安卓模仿直播中的閃動(放大縮小)的動畫


這里主要的實現方式是寫兩個動畫來循環滾動

不多說了上干貨

//直播中的動畫
        final Animation loadAnimation = AnimationUtils.loadAnimation(holder.iv_head.getContext(), R.anim.anim_repeat_scale1);
        final Animation loadAnimation2 = AnimationUtils.loadAnimation(holder.iv_head.getContext(), R.anim.anim_repeat_scale_second1);
        final ImageView iv = holder.iv_head;
        holder.iv_head.startAnimation(loadAnimation);
        loadAnimation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                iv.startAnimation(loadAnimation2);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
        loadAnimation2.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                iv.startAnimation(loadAnimation);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });

  這里寫了兩個動畫在監聽完成中繼續播放下一個動畫

loadAnimation 
loadAnimation2
這兩個動畫
xml文件在動畫文件anim中創建
anim_repeat_scale1
 
        
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- fromXScale toXScale分別是起始和結束時X坐標的伸縮尺寸-->
    <!-- fromYScale toYScale分別是起始和結束時Y坐標的伸縮尺寸-->
    <!-- pivotX pivotY分別為伸縮動畫相對於x,y坐標開始的位置,50%為中心點,從哪個點開始-->
    <scale
        android:duration="600"
        android:fillAfter="false"
        android:fromXScale="0.9"
        android:fromYScale="0.9"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0">
    </scale>
</set>

  

anim_repeat_scale_second1
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- fromXScale toXScale分別是起始和結束時X坐標的伸縮尺寸-->
    <!-- fromYScale toYScale分別是起始和結束時Y坐標的伸縮尺寸-->
    <!-- pivotX pivotY分別為伸縮動畫相對於x,y坐標開始的位置,50%為中心點,從哪個點開始-->
    <scale
        android:duration="600"
        android:fillAfter="false"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.9"
        android:toYScale="0.9">
    </scale>
</set>

  效果就是一直放大縮小的效果

 

 

 

leileitua

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM