Android动画系列

 

博客导航:

 

 

 

 

1.介绍:

Android补间动画之平移动画,在实际的开发过程中,其实有好多地方需要用到平移动画,这是对于平移动画的简单介绍。

 

2.属性

duration 时间
fromYDelta

动画开始点的Y轴坐标点,可以用三种方式表示:

1.数字50,表示当前View左上角的Y轴坐标+50px。

2.百分比50%,表示当前View的左上角Y轴坐标+此View的长度的50%。

3.百分数p 50%p,当前View左上角Y轴坐标+父控件长度的50%。

toYDelta 动画结束Y轴坐标。
fromXDelta 动画开始的X轴坐标。
toXDelta 动画结束的X轴坐标。

3.实现方式

3.1 xml方式

<?xml version="1.0" encoding="utf-8"?>    

3.2 代码方式实现

        TranslateAnimation translateAnimation1 = new TranslateAnimation(0,0,0,1000);//        使用java代码的方式创建TranslateAnimation,传入六个参数,fromXType、fromXValue、toXType、toXValue和fromYType、fromYValue、toYType、toYValue,使用如下构造方法。//        参数说明://        fromXType:动画开始前的X坐标类型。取值范围为ABSOLUTE(绝对位置)、RELATIVE_TO_SELF(以自身宽或高为参考)、RELATIVE_TO_PARENT(以父控件宽或高为参考)。//        fromXValue:动画开始前的X坐标值。当对应的Type为ABSOLUTE时,表示绝对位置;否则表示相对位置,1.0表示100%。//        toXType:动画结束后的X坐标类型。//        toXValue:动画结束后的X坐标值。//        fromYType:动画开始前的Y坐标类型。//        fromYValue:动画开始前的Y坐标值。//        toYType:动画结束后的Y坐标类型。//        toYValue:动画结束后的Y坐标值。        translateAnimation1.setDuration(1000);        translateAnimation1.setInterpolator(new DecelerateInterpolator());        translate_img.startAnimation(translateAnimation1)

 

4.动画的监听事件

translateAnimation1.setAnimationListener(new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {                //动画开始            }            @Override            public void onAnimationEnd(Animation animation) {                //动画结束                translate_img.clearAnimation();            }            @Override            public void onAnimationRepeat(Animation animation) {                //动画重复            }        });

5.方法解释

setInterpolator设置插值器解释
LinearInterpolator 匀速
AccelerateInterpolator 先减速后加速
AnticipateInterpolator 动画开始之前有回弹效果
BounceInterpolator 结束回弹效果
CycleInterpolator 跳一跳效果
OvershootInterpolator 动画结束时向前弹一定距离再回到原来位置
AccelerateDecelerateInterpolator 系统默认的动画效果,先加速后减速
AnticipateOvershootInterpolator 开始之前向前甩,结束的时候向后甩
DecelerateInterpolator 开始加速再减速

6.案例实现

6.1 Activity的布局文件

<?xml version="1.0" encoding="utf-8"?>        

6.2 Activity代码实现

package com.menglong.animatordemo.translate;import android.os.Bundle;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.view.animation.DecelerateInterpolator;import android.view.animation.Interpolator;import android.view.animation.TranslateAnimation;import android.widget.Button;import android.widget.ImageView;import com.menglong.animatordemo.R;import com.menglong.animatordemo.base.BaseActivity;public class TranslateActivity extends BaseActivity implements View.OnClickListener {    private ImageView translate_img;    private Animation translateAnimation;    private Button translate_but;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_translate);        initView();    }    private void initView() {        super.initTitle("平移动画");        translate_img = (ImageView) findViewById(R.id.translate_img);        translateAnimation = AnimationUtils.loadAnimation(this, R.anim.translate_anim);//        Interpolator interpolator = new LinearInterpolator();//匀速//        Interpolator interpolator = new AccelerateInterpolator();//先慢后快//        Interpolator interpolator = new AnticipateInterpolator();//开始回弹效果//        Interpolator interpolator = new BounceInterpolator();//结束回弹效果//        Interpolator interpolator = new CycleInterpolator(2);//跳一跳效果//        Interpolator interpolator = new OvershootInterpolator(1);//动画结束时向前弹一定距离再回到原来位置//        Interpolator interpolator = new AccelerateDecelerateInterpolator();//系统默认的动画效果,先加速后减速//        Interpolator interpolator = new AnticipateOvershootInterpolator();//开始之前向前甩,结束的时候向后甩        Interpolator interpolator = new DecelerateInterpolator();//开始加速再减速        translateAnimation.setInterpolator(interpolator);        translate_but = (Button) findViewById(R.id.translate_but);        translate_but.setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.translate_but://                translate_img.startAnimation(translateAnimation);                code();                break;            default:                break;        }    }    //代码实现方式    private void code(){        TranslateAnimation translateAnimation1 = new TranslateAnimation(0,0,0,1000);//        使用java代码的方式创建TranslateAnimation,传入六个参数,fromXType、fromXValue、toXType、toXValue和fromYType、fromYValue、toYType、toYValue,使用如下构造方法。//        参数说明://        fromXType:动画开始前的X坐标类型。取值范围为ABSOLUTE(绝对位置)、RELATIVE_TO_SELF(以自身宽或高为参考)、RELATIVE_TO_PARENT(以父控件宽或高为参考)。//        fromXValue:动画开始前的X坐标值。当对应的Type为ABSOLUTE时,表示绝对位置;否则表示相对位置,1.0表示100%。//        toXType:动画结束后的X坐标类型。//        toXValue:动画结束后的X坐标值。//        fromYType:动画开始前的Y坐标类型。//        fromYValue:动画开始前的Y坐标值。//        toYType:动画结束后的Y坐标类型。//        toYValue:动画结束后的Y坐标值。        translateAnimation1.setDuration(1000);        translateAnimation1.setInterpolator(new DecelerateInterpolator());        translate_img.startAnimation(translateAnimation1);        translateAnimation1.setAnimationListener(new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {                //动画开始            }            @Override            public void onAnimationEnd(Animation animation) {                //动画结束                translate_img.clearAnimation();            }            @Override            public void onAnimationRepeat(Animation animation) {                //动画重复            }        });    }}

6.3 translat_anim.xml

<?xml version="1.0" encoding="utf-8"?>    

7.案例效果展示

                                                                         

 

8.项目地址

https://github.com/SunMengLong/AnimatorDemo
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

更多相关文章

  1. 如何实现Android应用的启动画面(闪屏)?
  2. android viewPager滑动速度设置
  3. Android(安卓)基于坐标的图形开发
  4. android imageview围绕中心旋转动画
  5. Lottie动画在Android和Ios开发中的应用——Android篇
  6. Android轻松搞定Dialog提示动画效果
  7. 【Android】Animation之震动效果动画在登录Activity上的应用
  8. Android变形(Transform)之Matrix用法
  9. android水波纹涟漪效果的实现 ---- 入门+初步提高

随机推荐

  1. 《Android系统学习》第十一章:Android应用
  2. title上左右按钮
  3. asss
  4. tools:context=".MainActivity的作用
  5. Android: Android(安卓)Reboot流程
  6. Androidの游戏源码下载地址
  7. Android监听网络变化
  8. android安装SDK时遇到的一些问题
  9. Android(安卓)Wear - Design Principles
  10. tools:context=".MainActivity的作用