当前位置: 源码素材网 » Android教程 » 详情页

android制作小鸟飞行动画

  •   时间:2019-10-12
  • 概述:飞行动画

android制作小鸟飞行动画,在开始之前,请创建资源XML文件,然后在XML文件中设置逐帧动画的参数,用来控 制动画的效果,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@mipmap/mrkj_plant_bird_01" android:duration="500"/>
    <item android:drawable="@mipmap/mrkj_plant_bird_02" android:duration="500"/>
</animation-list>

获取屏幕的宽度:

private void getWindowWidth(){
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    screenWidth = dm.widthPixels;
}

初始化动画对象和控件对象后为添加动画效果,代码如下:

private int screenWidth;//获取屏幕宽度
private ImageView bird;//大雁
private AnimationDrawable birdAnimation;//帧动画
private AnimatorSet birdAnimatorset;//属性动画
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindowWidth();//获取屏幕宽度
    bird = (ImageView) findViewById(R.id.bird);
    bird.setTranslationX(-screenWidth);//设置大雁摆放位置向左平移一个屏幕的宽
    birdAnimation = (AnimationDrawable) bird.getDrawable();//获取帧动画
    //设置bird的动画
    birdAnimatorset = new AnimatorSet();
    ObjectAnimator birdAnimatorR = ObjectAnimator
                        .ofFloat(bird,"translationX",screenWidth);
    birdAnimatorR.setDuration(30*1000);//设置动画时间
    birdAnimatorR.setInterpolator(new LinearInterpolator());//设置插值器
    birdAnimatorR.setRepeatCount(ValueAnimator.RESTART);//设置从头开始循环
    birdAnimatorR.setRepeatCount(ValueAnimator.INFINITE);//设置循环播放
    birdAnimatorset.play(birdAnimatorR);//向动画集合中添加动画
    birdAnimation.start();//开启帧动画
    birdAnimatorset.start();//开启属性动画
}

 该实例是属性动画与逐帧动画的结合使用,请尝试结合使用渐变动画与逐帧动画,实现动画效果。

    相关声明:

      若“android制作小鸟飞行动画”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。