`
ch_kexin
  • 浏览: 898821 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

Android动画Animation简单示例

 
阅读更多

Animation是Android给我们提供的一个可以实现动画效果的API,利用Animation我们可以实现一系列的动画效果,比如缩放动画,透明度动画,旋转动画,位移动画,布局动画,帧动画等等.Android基础动画分为四种,分别是Tween Animation,Frame Animation,Layout Animation,Property Animation.由于动画效果不好用图片进行展示,大家可以自己亲手试试看下效果.下面给出前三种简单的示例代码,帮助大家进行简单的动画入门.

(1) Tween Animation (变换动画)

  Tween Animation按效果可以分为四种:Alpha,Scale,Translate,Rotate,它们有一下共同属性:

  1. Duration: 动画持续时间(毫秒);

  2. fillAfter: 设置为True,动画转换在动画结束后被应用;

  3. fillBefore: 设置为True,动画转换在动画开始前被应用;

  4. interpolator: 动画插入器(加速,减速插入器);

  5. repeatCount: 动画重复次数;

  6. repeatMode: 正序重复/倒序重复

  7. startOffSet: 动画之间的时间间隔

 

  ① Alpha (渐变透明度动画)

  MainActivity.java主要代码:  

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha);
image.startAnimation(loadAnimation);

  alpha.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <alpha
        android:duration="1000"
        android:fromAlpha="0.1"
        android:toAlpha="1.0" >
    </alpha>

</set>

  ② Scale (渐变尺寸缩放动画)

  MainActivity.java主要代码:

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimation = AnimationUtils.loadAnimation(this, R.anim.scale);
image.startAnimation(loadAnimation);

  scale.xml 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <scale
        android:duration="2000"
        android:fillAfter="false"
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" />

</set>

  ③ Translate (位置移动动画)

  MainActivity.java主要代码:  

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimationloadAnimation = AnimationUtils.loadAnimation(this, R.anim.translate);
image.startAnimation(loadAnimation);

 translate.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="1000"
        android:fromXDelta="10"
        android:fromYDelta="10"
        android:toXDelta="100"
        android:toYDelta="100" />

</set>

 ④ Rotate (旋转动画)

  MainActivity.java主要代码:

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimation loadAnimation = AnimationUtils.loadAnimation(this, R.anim.rotate);
image.startAnimation(loadAnimation);

  rotate.xml  

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <rotate
        android:duration="1000"
        android:fromDegrees="0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="+360" />

</set>

 (2) Layout Animation (布局动画)

  MainActivity.java主要代码:

Intent intent=new Intent(MainActivity.this,ListActivity.class);
startActivity(intent);

 ListActivity.java代码:

package com.example.caobotao.learnanimation;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListActivity extends Activity{
    
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_layout);
        listView=(ListView) findViewById(R.id.listView);
        List<String>list=new ArrayList<String>();
        for(int i=0;i<20;i++)
        {
            list.add("示例"+i);
        }
        ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
        listView.setAdapter(adapter);
        LayoutAnimationController lac=new LayoutAnimationController(AnimationUtils.loadAnimation(this, R.anim.zoom_in));
        lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
        listView.setLayoutAnimation(lac);
        listView.startLayoutAnimation();
    }

}

   zoom_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator" >
  
  <scale
        android:duration="1000"
        android:fromXScale="0.1"
        android:fromYScale="0.1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" />
  <alpha
        android:duration="1000"
        android:fromAlpha="0"
        android:toAlpha="1.0" />
</set>

 (3) Frame Animation (帧动画)

  MainActivity.java主要代码:

ImageView image = (ImageView) findViewById(id.image);
image.setImageResource(R.drawable.anim_list);
AnimationDrawable animationDrawable = (AnimationDrawable) image.getDrawable();
animationDrawable.start();

  anim_list.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:drawable="@mipmap/one"
        android:duration="500"/>
    <item
        android:drawable="@mipmap/two"
        android:duration="500"/>
    <item
        android:drawable="@mipmap/three"
        android:duration="500"/>
    <item
        android:drawable="@mipmap/four"
        android:duration="500"/>
    <item
        android:drawable="@mipmap/five"
        android:duration="500"/>
    <item
        android:drawable="@mipmap/six"
        android:duration="500"/>

</animation-list>

 

分享到:
评论

相关推荐

    Android 动画 Animation Demo

    在Android开发中,动画(Animation)是提升用户体验和界面交互性的重要工具。Android动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。本篇将深入探讨这两种动画机制,以及如何在...

    DrawableAnimation简单示例

    在Android开发中,Drawable Animation是一种实现简单动画的机制,它允许开发者通过一组连续的图片或者形状来创建动画效果。这个“DrawableAnimation简单示例”涵盖了如何在应用中使用Drawable Animation的基本步骤,...

    Android动画源码 Animation

    在Android中,所有的动画都可以通过`Animation`类或者其子类来创建。`Animation`类提供了一些基本属性,如动画的持续时间、重复次数、是否反向播放等。开发者可以通过设置这些属性来定制动画效果。 接着,`BAnim_v7...

    android动画介绍之 自定义Animation动画

    五、Shake Animation示例 压缩包中的`Shake`文件可能包含一个摇晃动画的实现。摇晃动画通常是通过改变View的X坐标来实现的。下面是一个简单的摇晃动画示例: ```java public class ShakeAnimation extends ...

    Android动画示例

    视图动画在早期版本的Android中引入,主要用于改变视图的位置、大小、透明度等属性,但并不实际改变视图的状态,只是视觉上的欺骗。属性动画系统在Android 3.0(API级别11)之后引入,它允许开发者对对象的任何属性...

    帧动画(Drawable Animation)示例源码

    综上所述,帧动画在Android中主要用于创建简单的动态效果,适用于游戏、加载指示器等场景。通过合理的资源管理和编程控制,我们可以创建出丰富多样的动态用户体验。在实际项目中,应根据需求选择合适的动画实现方式...

    android加载动画示例

    在Android中,帧动画主要通过`&lt;animation-list&gt;`标签在XML资源文件中定义。下面将详细介绍如何实现一个加载动画。 1. **创建帧动画资源** 在`res/anim`目录下创建一个XML文件,例如`loading_animation.xml`。在这...

    Android-Animation动画之Tween Animation补间动画

    在Android中,补间动画由`Animation`类及其子类如`TranslateAnimation`、`ScaleAnimation`、`RotateAnimation`和`AlphaAnimation`来实现。这些子类分别对应于平移、缩放、旋转和透明度变化四种基本动画效果。 1. **...

    Animation Demo 试用示例

    "Animation Demo 试用示例"是一个专为初学者设计的项目,旨在介绍Android平台上的动画机制。在这个示例中,我们将探讨四种基本的动画效果,它们是Tween动画。Tween动画是Android动画系统中的一种基础类型,用于实现...

    Android 属性动画(Property Animation)

    Android属性动画(Property Animation)是Android 3.0(API级别11)引入的一个强大功能,它极大地扩展了Android的动画系统,使得开发者能够实现更丰富、更动态的视觉效果。与视图动画(View Animation)不同,属性...

    android动画例子:tween animation and property animation

    Tween Animation,也称为帧动画,是在Android SDK早期版本中引入的,主要用于实现对象在屏幕上的简单移动、旋转、缩放等效果。Tween Animation基于关键帧的概念,即在动画过程中定义开始和结束状态,然后系统会自动...

    android中的动画(Animation)详解

    在Android中,实现帧动画主要包括以下步骤: 1. **准备图像资源**:将所有要播放的图片放入`res/drawable`目录。 2. **创建动画XML**:在`res/anim`目录下创建一个XML文件,如上面的例子所示,`&lt;animation-list&gt;`...

    android 简单的帧动画例子

    在Android开发中,帧动画(Frame Animation)是一种常见的动画效果,它通过连续播放一系列静态图像来创造出动态的视觉效果,类似于传统的电影制作原理。在这个"android 简单的帧动画例子"中,我们将探讨如何在...

    Android中实现一个简单的逐帧动画示例代码.zip

    以上就是如何在Android中实现一个简单的逐帧动画的基本步骤。你可以根据项目需求调整动画帧的顺序、显示时间和动画的重复次数,以创建出各种生动有趣的动画效果。在实际开发中,还可以结合其他动画类型,如补间动画...

    android tween动画代码示例及详解

    在本文中,我们将深入探讨如何使用Android Tween动画,并通过具体的代码示例进行详解。 首先,我们来看`alpha`动画,它用于改变视图的透明度。Alpha动画的实现主要使用`AlphaAnimation`类。以下是一个简单的示例: ...

    Android动画之(PropertyAnimation)属性动画详解(一)

    在Android开发中,动画是提升用户体验的关键因素之一。属性动画(Property Animation)是Android 3.0(API级别11)引入的一种强大的动画系统,它极大地扩展了Android平台上的动画能力,使得开发者能够实现更为复杂和...

    博客《Android动画之一:Drawable Animation》附带源码

    在Android中,Drawable不仅仅是一个静态图像,它还可以作为动画序列的容器。通过将多张图片放入一个Drawable资源文件中,我们可以创建一个帧动画。这种动画方式特别适合那些不需要复杂交互或过渡效果的场景。例如,...

    Android 抖动动画效果

    首先,我们要知道在Android中,动画主要分为两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。抖动动画属于补间动画的一种,因为它涉及到对象的位置、大小或透明度等属性的变化。补间动画是通过...

    Android 逐帧动画示例

    在Android中,逐帧动画可以通过`AnimationDrawable`类来实现。`AnimationDrawable`是一个可绘制对象,可以作为视图的背景,并且可以像动画一样顺序播放其包含的帧。以下将详细介绍如何创建和使用逐帧动画。 首先,...

Global site tag (gtag.js) - Google Analytics