android动画简介

android中动画分为3种:

  1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;
  2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。
  3. Property Animation:属性动画,通过动态地改变对象的属性从而达到动画效果,属性动画为API 11新特性。

下面只介绍前两种动画的使用方法,属性动画将在后续文章中介绍

一 Tween Animation

 Tween Animation有四种形式:

  l  alpha              渐变透明度动画效果

  l  scale              渐变尺寸伸缩动画效果

  l  translate         画面位置移动动画效果

  l  rotate              画面旋转动画效果

        这四种动画实现方式都是通过Animation类和AnimationUtils配合实现。

可以通过xml实现:动画的XML文件在工程中res/anim目录。

例如:rotate.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter = "false"
    android:zAdjustment="bottom"
    >
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="4000"
        />
</set>

使用动画

Animation anim = AnimationUtils.loadAnimation(mContext, R.anim.rotate);

//监听动画的状态(开始,结束)
anim.setAnimationListener(new EffectAnimationListener());
textWidget = (TextView)findViewById(R.id.text_widget);
textWidget.setText("画面旋转动画效果");
textWidget.startAnimation(anim);

二 Frame Animation

  Frame Animation是顺序播放事先做好的图像,跟电影类似。不同于animation package,Android SDK提供了另外一个类AnimationDrawable来定义使用Frame Animation。

利用xml文件实现:res/drawable-hdpi/frame.xml:
<?xml version="1.0" encoding="utf-8"?>

<animation-list
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:oneshot="true"
  >
       <item android:drawable="@drawable/p1" android:duration="1000"></item>
       <item android:drawable="@drawable/p2" android:duration="1000"></item>
       <item android:drawable="@drawable/p3" android:duration="1000"></item>
       <item android:drawable="@drawable/p4" android:duration="1000"></item>
       <item android:drawable="@drawable/p5" android:duration="1000"></item>
       <item android:drawable="@drawable/p6" android:duration="1000"></item>
</animation-list>
使用动画

AnimationDrawable anim = (AnimationDrawable)getResources().
getDrawable(R.drawable.frame);
textWidget = (TextView)findViewById(R.id.text_widget);
textWidget.setText("背景渐变动画效果");
textWidget.setBackgroundDrawable(anim);
anim.start();

这里有点不同的是,利用AnimationDrawable实现动画时,本身并没有提供接口来监听动画的状态(开始,结束),需要自己处理。


  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
Android中,帧动画是一种通过连续播放一系列预定义的图像来模拟动画效果的技术。在帧动画中,每个图像都被称为一帧,而整个动画则由这些帧组成。 以下是在Android中使用帧动画的基本步骤: 1. 定义帧动画资源:在res/drawable目录下创建一个XML文件来定义帧动画资源。在这个文件中,你需要指定每一帧所对应的图像资源,并设置动画的持续时间和重复次数等属性。 2. 加载帧动画资源:在Activity的代码中通过调用getResources().getDrawable()方法来加载帧动画资源。 3. 设置帧动画:将加载的帧动画资源设置到ImageView或其他View组件中,调用setBackgroudDrawable()方法即可。 4. 启动帧动画:通过调用AnimationDrawable的start()方法来启动帧动画。 以下是一个简单的示例: 1. 定义帧动画资源。在res/drawable目录下创建一个名为"animation.xml"的XML文件,内容如下: ``` <animation-list android:id="@+id/selected" android:oneshot="false"> <item android:drawable="@drawable/frame1" android:duration="50" /> <item android:drawable="@drawable/frame2" android:duration="50" /> <item android:drawable="@drawable/frame3" android:duration="50" /> <item android:drawable="@drawable/frame4" android:duration="50" /> </animation-list> ``` 2. 加载帧动画资源。在Activity的代码中通过调用getResources().getDrawable()方法来加载帧动画资源。 ``` AnimationDrawable animation = (AnimationDrawable) getResources().getDrawable(R.drawable.animation); ``` 3. 设置帧动画。将加载的帧动画资源设置到ImageView或其他View组件中,调用setBackgroudDrawable()方法即可。 ``` ImageView imageView = (ImageView) findViewById(R.id.image_view); imageView.setBackgroundDrawable(animation); ``` 4. 启动帧动画。通过调用AnimationDrawable的start()方法来启动帧动画。 ``` animation.start(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

singwhatiwanna

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值