Android知识要点整理(1)---- Android 2D动画

本文详细介绍了Android中的各种动画类型,包括逐帧动画、布局动画、视图动画和属性动画。逐帧动画通过AnimationDrawable类实现,布局动画应用于ListView等布局,视图动画通过变换矩阵控制视图变化,属性动画则是通过修改属性值实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 动画类型

Android 2.3 及以前的版本支持3种类型动画:逐帧动画、布局动画和视图动画。

逐帧动画:作用对象是系列图片,是通过AnimationDrawable 类来完成逐帧动画;

布局动画:作用对象是某些类型的视图,比如ListView 、GridView,通常是为首次添加布局时增加动画效果。

视图动画:作用对象是任意视图,通过控制用于显示视图的变换矩阵,可以将任意视图制作成动画。


后两者可以统称为:补间动画。


Android 3.0新增的动画方法称为属性动画:它的核心实现方法是随时间不断修改属性值


2.逐帧动画

以很短的间隔时间连续显示一系列图像的简单过程。Android中通过AnimationDrawable 类来完成逐帧动画。

AnimationDrawable类实现动画的方式是:要求容器或视图调用Runnable类,该类实际使用不同的参数集重新绘制Drawable。

在XML中使用animation-list来标记一个逐帧动画,如:

<animation-list  xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/colored_ball1" android:duration="50"/>
<item android:drawable="@drawable/colored_ball2" android:duration="50"/>
<item android:drawable="@drawable/colored_ball3" android:duration="50"/>
</animation-list>
AnimationDrawable 在开始动画前需要将所有图像载入内存。animation-list标记将被转换为AnimationDrawable对象。

3.布局动画

使用布局动画可以向ListView 或者GridView中每个项目的显示方式添加视觉效果。

可以在由ViewGroup派生而来的所有控件上使用这种动画类型。

XML中定义布局动画:

<layout-animation xmlns:android="http://schemas.android.com/apk/res/anroid"
    android:delay="30%"
    android:animationOrder="reverse"
    anroid:animation="@anim/scale"/>
然后在XML布局文件中的某个容器控件应用该动画:

<ListView 
    android:...
    android:layout_animation="@anim/list_layout_controller"/>

4.视图动画

当在Android中显示视图时,它将经历一个变换矩阵的过程,变换矩阵用于以某种方式变换视图

自定义视图动画:

public class ViewAnimation extends Animation{
    @Override
    public void initialize(int width,int height,
                                     int parentWidth,int parentHeight){
    super.initialize(width,height,parentWidth,parentHeight);
    setDuration(2500);
    setFillAfter(true);
    setInterpolator(new LinearInterpolator());

    @Override
    protected void applyTransformation(float interpolatedTime,Transformation t){
        final Matrix matrix = t.getMatrix();
        matrix.setScale(interpolatedTime,interpolatedTime);
    }
} 
动画的主要部分在applyTransformation方法中实现。Android的框架将反复调用此方法来模拟动画。

5.基本的补间动画类型

缩放动画、旋转动画、平移动画、alpha动画。

6.变换矩阵

Matrix类的一些重要方法:

matrix.reset();

matrix.setScale();

matrix.setTranslate();

matrix.setRotate();

matrix.setSkew()://扭曲图像

7.属性动画

新的属性动画包含以下概念:
动画生成器=>Animator

值动画生成器;=>ValueAnimator 、ValueAnimator.AnimatorUpateListener

对象动画生成器;=>ObjectAnimator

动画生成器集合;=>AnimatorSet

动画生成器构建器;=>AnimatorSetBuilder

动画生成器监听器i;=>AnimatorListener

属性值持有者;=>PropertyValuesHolder

类型求值器;=>TypeEvaluataor

关键帧;=> KeyFrame

视图属性动画生成器;

布局转变;

动画生成器XML文件定义。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值