zoukankan      html  css  js  c++  java
  • Android开发UI之补间动画-Tween Animation

    Tween Animation-补间动画

    官网链接-http://developer.android.com/reference/android/view/animation/Animation.html

    Animation,继承Object,实现Cloneable接口

    实现的直接子类:AlphaAnimation,TransalteAnimation,ScaleAnimation,RotateAnimation,AnimationSet

    1.透明动画---AlphaAnimation

    a.动态java代码实现button按钮的透明效果

     1 rootView.findViewById(R.id.btnAnimation).setOnClickListener(new OnClickListener() {
     2                 
     3     @Override
     4     public void onClick(View v) {
     5     // TODO Auto-generated method stub
     6          AlphaAnimation aa=new AlphaAnimation(0, 1);
     7          aa.setDuration(1000);
     8          v.startAnimation(aa);
     9 
    10         }
    11  });

    b.通过XML属性设置实现透明动画

    新建一个Android XML fils,在新建页面,Resource Type选择为Tween Animation,Root element选择为alpha.

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
    3     android:fromAlpha="0"
    4     android:toAlpha="1"
    5     android:duration="1000" >
    6 </alpha>

    java代码

    1             rootView.findViewById(R.id.btnAnimation).setOnClickListener(new OnClickListener() {
    2                 
    3                 @Override
    4                 public void onClick(View v) {
    5                     // TODO Auto-generated method stub
    6                     v.setAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.aa));
    7                 }
    8             });

    2.旋转动画-RotateAnimation

    a.动态java代码实现button按钮的旋转效果

     1         findViewById(R.id.btnRotate).setOnClickListener(new OnClickListener() {
     2             @Override
     3             public void onClick(View v) {
     4                 // TODO Auto-generated method stub
     5                 RotateAnimation ra=new RotateAnimation(0, 360);
     6                 ra.setDuration(1000);
     7                 v.setAnimation(ra);
     8 
     9             }
    10         });

    b.通过XML属性设置实现旋转动画

    新建一个Android XML fils,在新建页面,Resource Type选择为Tween Animation,Root element选择为rotate.

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <rotate xmlns:android="http://schemas.android.com/apk/res/android"
    3     android:fromDegrees="0" 
    4     android:toDegrees="360"
    5     android:duration="1000"
    6     android:pivotX="50%"                //自身的50%
    7     android:pivotY="50%">               //自身的50%
    8 </rotate>

    java代码

    1         findViewById(R.id.btnRotate).setOnClickListener(new OnClickListener() {
    2             @Override
    3             public void onClick(View v) {
    4                 // TODO Auto-generated method stub
    5                 v.setAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.ra));
    6             }
    7         });

    3.移动动画-TranslateAnimation

    a.动态java代码实现button按钮的移动效果

     1         findViewById(R.id.translateAnimation).setOnClickListener(new OnClickListener() {
     2             
     3             @Override
     4             public void onClick(View v) {
     5                 // TODO Auto-generated method stub
     6                 TranslateAnimation ta=new TranslateAnimation(0, 0, 300, 300);
     7                 ta.setDuration(1000);
     8                 v.setAnimation(ta);
     9 
    10             }
    11         });

    b.通过XML属性设置实现移动动画

    新建一个Android XML fils,在新建页面,Resource Type选择为Tween Animation,Root element选择为translate.

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <translate xmlns:android="http://schemas.android.com/apk/res/android"
    3     android:fromXDelta="0"
    4     android:toXDelta="100"
    5     android:fromYDelta="0"
    6     android:toYDelta="100" 
    7     android:duration="1000">
    8 </translate>

    java代码

    1         findViewById(R.id.translateAnimation).setOnClickListener(new OnClickListener() {
    2             
    3             @Override
    4             public void onClick(View v) {
    5                 // TODO Auto-generated method stub
    6                 v.setAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.ta));
    7             }
    8         });

    4.缩放动画-ScaleAnimation

    a.动态java代码实现button按钮的缩放效果

     1         findViewById(R.id.btnScale).setOnClickListener(new OnClickListener() {
     2             
     3             @Override
     4             public void onClick(View v) {
     5                 // TODO Auto-generated method stub
     6                 ScaleAnimation sa=new ScaleAnimation(0, 1, 0, 1);
     7                 sa.setDuration(1000);
     8                 v.setAnimation(sa);10             }
    11         });

    b.通过XML属性设置实现缩放动画

    新建一个Android XML fils,在新建页面,Resource Type选择为Tween Animation,Root element选择为scale.

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <scale xmlns:android="http://schemas.android.com/apk/res/android"
    3     android:fromXScale="0"
    4     android:toXScale="1"
    5     android:fromYScale="0"
    6     android:toYScale="1"
    7     android:duration="1000" android:pivotX="50%"
    8     android:pivotY="50%">
    9 </scale>

    java代码

    1         findViewById(R.id.btnScale).setOnClickListener(new OnClickListener() {
    2             
    3             @Override
    4             public void onClick(View v) {
    5                 // TODO Auto-generated method stub
    6                 v.setAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.sa));
    7             }
    8         });

    5.混合动画--AnimationSet

    a.动态java代码实现button按钮的混合动画效果

     1         findViewById(R.id.btnAnimation).setOnClickListener(new OnClickListener() {
     2             
     3             @Override
     4             public void onClick(View v) {
     5                 // TODO Auto-generated method stub
     6                 AnimationSet as=new AnimationSet(true);
     7                 as.setDuration(1000);
     8                 
     9                 AlphaAnimation aa=new AlphaAnimation(0, 1);
    10                 aa.setDuration(1000);
    11                 as.addAnimation(aa);
    12                 
    13                 TranslateAnimation ta= new TranslateAnimation(200,0,200,0);
    14                 ta.setDuration(1000);
    15                 as.addAnimation(ta);
    16                 
    17                 v.setAnimation(as);
    18 
    19             }
    20         });

    b.通过XML属性设置实现混合动画效果

    新建一个Android XML fils,在新建页面,Resource Type选择为Tween Animation,Root element选择为set.

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <set xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:shareInterpolator="true" 
     4     android:duration="1000">
     5     
     6     <alpha android:fromAlpha="0" android:toAlpha="1"/>
     7     
     8     <translate android:fromXDelta="200"
     9         android:toXDelta="0"
    10         android:fromYDelta="200"
    11         android:toYDelta="0"/>
    12 </set>

    java代码:

    1         findViewById(R.id.btnAnimation).setOnClickListener(new OnClickListener() {
    2             
    3             @Override
    4             public void onClick(View v) {
    5                 v.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.anim));
    6             }
    7         });
  • 相关阅读:
    react开发环境准备
    react介绍
    课程大纲
    Proving Equivalences HDU-2767 (tarjan缩点)
    tarjan求强连通分量 + 缩点 + 求割点割边
    树的重心(性质+模版)
    Educational Codeforces Round 93 (Rated for Div. 2)(A B C D)
    Friend-Graph HDU
    Codeforces Round #665 (Div. 2) (A B C D E)
    Matrix Again HDU
  • 原文地址:https://www.cnblogs.com/liyiran/p/4650407.html
Copyright © 2011-2022 走看看