Android(五)动画Animation

第一种:代码格式:

package com.itzb.annimation;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

    private Button btnxz;
    private Button btnsf;
    private Button btnrc;
    private Button btnpy;
    private LinearLayout ll;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnxz = (Button) findViewById(R.id.btnxz);
        btnsf = (Button) findViewById(R.id.btnsf);
        btnrc = (Button) findViewById(R.id.btnrc);
        btnpy = (Button) findViewById(R.id.btnyd);
        ll = (LinearLayout) findViewById(R.id.ll);
        btnxz.setOnClickListener(this);
        btnsf.setOnClickListener(this);
        btnrc.setOnClickListener(this);
        btnpy.setOnClickListener(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == btnxz.getId()) {
            rotaAnimationShow();
        } else if (id == btnsf.getId()) {
            scalAnimationShow();
        } else if (id == btnrc.getId()) {
            alphaAnimationShow();
        } else if (id == btnpy.getId()) {
            translateAnimationShow();
        }
    }

    // 渐入渐出动画
    public void alphaAnimationShow() {
        AlphaAnimation aa = new AlphaAnimation(0.1f, 1.0f);// 参数表示,透明度从0.1到1
        aa.setDuration(3000);// 设置动画时间。
        aa.setFillAfter(true);// 设置结果状态。不设置也行。
        ll.startAnimation(aa);// 启动动画
        // 其中AlphaAnimation类第一个参数fromAlpha表示动画起始时的透明度, 第二个参数toAlpha表示动画结束时的透明度。
    }

    // 旋转动画
    public void rotaAnimationShow() {
        // 其中RotateAnimation类第一个参数fromDegrees表示动画起始时的角度,
        // 第二个参数toDegrees表示动画结束时的角度。第三个第四个表示中心点旋转。
        // 另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y
        // 坐标的开始位置pivotXValue、pivotYValue等。
        RotateAnimation aa = new RotateAnimation(0f, 360f,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
        aa.setDuration(3000);
        ll.startAnimation(aa);// 启动动画
    }

    // 缩放动画
    public void scalAnimationShow() {
        /*
         * 第一个参数fromX ,第二个参数toX:分别是动画起始、结束时X坐标上的伸缩尺寸。 第三个参数fromY
         * ,第四个参数toY:分别是动画起始、结束时Y坐标上的伸缩尺寸。还可以加上锚点,Animation.RELATIVE_TO_SELF,
         * 0.5f, Animation.RELATIVE_TO_SELF, 0.5f
         * 另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y
         * 坐标的开始位置pivotXValue、pivotYValue等。
         */
        ScaleAnimation sa = new ScaleAnimation(0.1f, 1.0f, 0.1f, 1.0f);
        sa.setDuration(3000);
        ll.startAnimation(sa);
    }

    // 位移动画
    public void translateAnimationShow() {
        /*
         * 第一个参数fromXDelta ,第二个参数toXDelta:分别是动画起始、结束时X坐标。 第三个参数fromYDelta
         * ,第四个参数toYDelta:分别是动画起始、结束时Y坐标。
         */
        TranslateAnimation ta = new TranslateAnimation(0.1f, 100.0f, 0.1f,
                100.0f);
        ta.setDuration(3000);
        ll.startAnimation(ta);
    }

    // 动画集
    public void animationSetShow() {
        AlphaAnimation aa = new AlphaAnimation(0.1f, 1.0f);// 参数表示,透明度从0.1到1
        aa.setDuration(3000);// 设置动画时间。
        RotateAnimation ra = new RotateAnimation(0f, 360f,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
        AnimationSet as = new AnimationSet(true);
        as.addAnimation(aa);
        as.addAnimation(ra);
        ll.startAnimation(as);
    }
}

第二种:xml文件格式:

1.创建文件夹anim在res路径下。在anim中创建xml文件

如:

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

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="100%"
        android:toYDelta="0" >
    </translate>

    <alpha
        android:duration="500"
        android:fromAlpha="0"
        android:toAlpha="1" >
    </alpha>

</set>

2.在需要动画的地方写下列代码:

overridePendingTransition(R.anim.next_in, R.anim.next_out)
时间: 2024-10-03 22:37:12

Android(五)动画Animation的相关文章

Android 一般动画animation和属性动画animator

package com.example.animation; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.animation.TranslateAnimation; import android.widget.ImageView;

绘图篇——android属性动画

本文讲介绍android在3.0之后推出的一种新的动画机制,属性动画,对动画不了解的同学,可以先去看看绘图篇--android动画基础这篇文章.好了,现在我们进入正题. 基本概念 android传统动画Animation与属性动画Animator的工作原理 Animator出现的原因 Animation的局限性 属性动画ObjectAnimator translationX translationY X和Y rotation 组合动画 动画事件监听 小栗子 基本概念 [android传统动画An

【转载】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 动画animation

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

android开发之Animation(五)

android开发之Animation的使用(五) 本博文主要讲述的是Animation中的AnimationLisenter的使用方法,以及此类的一些生命周期函数的调用,代码实例如下: MainActivity.java: package com.example.animationlistener; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.vi

Android 属性动画(Property Animation) 完全解析 (上)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38067475 1.概述 Android提供了几种动画类型:View Animation .Drawable Animation .Property Animation .View Animation相当简单,不过只能支持简单的缩放.平移.旋转.透明度基本的动画,且有一定的局限性.比如:你希望View有一个颜色的切换动画:你希望可以使用3D旋转动画:你希望当动画停止时,View的

Android 属性动画(Property Animation) 完全解析 (下)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38092093 上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法: ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~ 当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~ 1.如何使用xml文件来创建属性动画 大家肯定都清楚,

Android动画Animation简单示例

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

android中设置Animation 动画效果

在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation 画面转换动画,接下来eoe进行讲解. tweened animation 渐变动画有以下两种类型: 1.alpha   渐变透明度动画效果 2.scale   渐变尺寸伸缩动画效果 frame by frame animation 画面转换动画有以下两种类型: 1.translate  画面转换位置

Android属性动画Property Animation系列三之LayoutTransition(布局容器动画)

在上一篇中我们学习了属性动画的ObjectAnimator使用,不了解的可以看看 Android属性动画Property Animation系列一之ObjectAnimator.这一篇我们来学点新的东西.做项目的时候应该碰到这种问题:根据不同条件显示或者隐藏一个控件或者布局,我们能想到的第一个方法就是 调用View.setVisibility()方法.虽然实现了显示隐藏效果,但是总感觉这样的显示隐藏过程很僵硬,让人不是很舒服,那么有没有办法能让这种显示隐藏有个过渡的动画效果呢?答案是肯定的,不言