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>
时间: 2024-08-18 19:13:59

Android动画Animation简单示例的相关文章

Android动画Animation的两种加载执行方式

本文以简单的AlphaAnimation("淡入淡出(透明度改变)"动画)为例,简单的说明Android动画Animation的两种加载执行方法: (1) 直接写Java代码,制作Android动画. (2) 写XML配置文件,加载XML资源文件执行. 其实这两者是一致的.要知道,在Android中,凡是可以在XML文件完成的View,代码亦可完全写出来. 现在先给出一个Java代码完成的动画AlphaAnimation,AlphaAnimation功能简单,简言之,可以让一个View

Android 动画animation 深入分析

转载请注明出处:http://blog.csdn.net/farmer_cc/article/details/18259117 Android 动画animation 深入分析 前言:本文试图通过分析动画流程,来理解android动画系统的设计与实现,学习动画的基本原则,最终希望能够指导动画的设计. 0 本文中用到的一些类图 1 view animation 调用方法:view.startAnimation(animation); [java] view plaincopy public voi

【转载】Android动画Animation

原文链接:http://www.cnblogs.com/zxl-jay/archive/2011/10/03/2198632.html 今天学习了Android中的Animation,它是一种能为我们提供动画效果的类.借助于网络资源和自己的理解,我将今天学到的知识总结如下(内容有点长,但是你读完后绝对对你有帮助,学习就得有点耐心): Android提供了Animation来实现动画的效果,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景

[Android]RecyclerView的简单示例

去年google的IO上就展示了一个新的ListView,它就是RecyclerView. 以下是官方的说明,我英语能力有限,不过我大概这么理解:RecyclerView会比ListView更具有拓展性,使用更有效率,而且更灵活了,具体怎么样,时隔一年,我们也发现了它越来越强大,所以有必要去认识一下这个小伙伴了. The RecyclerView widget is a more advanced and flexible version of ListView. This widget is

(三十九)android动画 Animation四大属性 详解(转载:http://www.android100.org/html/201304/25/2295.html)

一.Animation主要有四大属性,分别是淡入淡出,绕轴旋转,变化大小,位移变化 二.四大属性的共同的方法 1.setDuration(long durationMills):设置动画持续的时间(单位:毫秒) 2.setFillAfter(boolean fillAfter):如果fillAfter的值为true,则动画执行后看,控件将停留在执行结束的状态 3.setFillBefore(boolean fillBefore):如果fillBefore的值为true,则动画执行后看,控件将停留

android 动画animation

一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 Java Code代码中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnim

css3 动画(animation)-简单入门

css3之动画(animation) css3中我们可以使用动画,由于取代以前的gif图片,flash动画,以及部分javascript代码(相信有很多同学都用过jquery中的animate方法来做一些动画).具体如何使用呢??? 首先定义一个动画,然后引用动画. 定义一个动画要使用@keyframes,然后跟上你要定义的动画的名字.关键字"from"表示开始, "to"表示结束,等同于0% 和 100%.最好使用百分比来表示变化发生的时间,这样的话还可以定义从开

Android NDK 编译 简单示例 之 HelloWord

前面,在win7用cygwin上进行NDK的编译,确实发现有点麻烦,要配置很多环节. 还有另一种更简单的方法.就是直接在ADT上面配置即可,非常方便实用. 一.首先到官方下载最新的NDK解压到指定地方即可. 二.打开ADT, 1.Project 2.Properties 3.Builders---New... 4.Program 5.写一下项目名把 6.Main下面Location 选择Browser FIle System..选择NDK的路径下面的ndk-build.cmd 7.Working

Android动画效果

Android动画 Animation动画 - Frame动画 - Tween动画 通常电影里面的画面持续时间长为一秒24帧 直接看代码吧 package com.example.myanimotor; import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.content.Intent; import android.support.v7.app