代码分享->

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

package com.ldw.dreamblinkfeed.util;

import com.ldw.dreamblinkfeed.R;

import android.animation.Animator;

import android.animation.Animator.AnimatorListener;

import android.animation.ObjectAnimator;

import android.view.View;

/**

* 属性动画工具类

* @author ldw

*/

public class AnimatorUtil {

/**

* Y轴移动view

* @param view

* @param fromY

* @param toY

* @param duration

*/

public static void translateY(View view, float fromY, float toY, long duration){

view.setVisibility(View.VISIBLE);

ObjectAnimator translateAnimator = ObjectAnimator.ofFloat(view, "translationY", fromY, toY);

translateAnimator.setDuration(duration);

translateAnimator.start();

}

/**

* X轴移动view

* @param view

* @param fromX

* @param toX

* @param duration

*/

public static void translateX(View view, float fromX, float toX, long duration){

view.setVisibility(View.VISIBLE);

ObjectAnimator translateAnimator = ObjectAnimator.ofFloat(view, "translationX", fromX, toX);

translateAnimator.setDuration(duration);

translateAnimator.start();

}

/**

* view在Y轴移动后,把view设置为Gone状态

* @param view

* @param fromY

* @param toY

* @param duration

*/

public static void translateYToGone(final View view, float fromY, float toY, long duration){

animatorToGone("translationY", view, fromY, toY, duration);

}

/**

* View透明度渐变后,设置为Gone状态

* @param view

* @param fromAlpha

* @param toAlpha

* @param duration

*/

public static void alphaToGone(final View view, float fromAlpha, float toAlpha, long duration){

animatorToGone("alpha", view, fromAlpha, toAlpha, duration);

}

/**

* 指定的view做完指定动画后消失

* @param animator

* @param view

* @param from

* @param to

* @param duration

*/

private static void animatorToGone(String animator, final View view, float from, float to, long duration){

view.setVisibility(View.VISIBLE);

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, animator, from, to);

objectAnimator.setDuration(duration);

objectAnimator.start();

view.setTag(R.id.view_animator_tag, "start");

objectAnimator.addListener(new AnimatorListener() {

@Override

public void onAnimationStart(Animator animation) {

}

@Override

public void onAnimationRepeat(Animator animation) {

}

@Override

public void onAnimationEnd(Animator animation) {

view.setTag(R.id.view_animator_tag, "end");

view.setVisibility(View.GONE);

view.setAlpha(1);

}

@Override

public void onAnimationCancel(Animator animation) {

}

});

}

/**

* 获取该view是否正在执行动画。该view执行的动画必须是有监听动画结束的,例如调用了animatorToGone方法的

* @param view

* @returntrue 正在执行动画,false 动画执行完毕或者没有执行动画

*/

public static boolean isAnimatorWithView(final View view){

String tag = (String) view.getTag(R.id.view_animator_tag);

if(tag != null && tag.equalsIgnoreCase("start")){

return true;

}

return false;

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

其中R.id.view_animator_tag必须是定义在Strings.xml中

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

小奋斗文章

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

android 属性动画实例,Android 属性动画Animator工具类代码案例相关推荐

  1. 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引用 | 引用队列 | 针对不同 Android 版本开发不同的 Bitmap 复用策略 | 工具类代码 )

    文章目录 一.Bitmap 复用池 二.弱引用 Bitmap 内存释放 三.从 Bitmap 复用池中获取对应可以被复用的 Bitmap 对象 1.Android 2.3.3(API 级别 10)及以 ...

  2. Android - 分转元、元转分 金额工具类

    说明: Android涉及到的金额分转元.元转分,写成工具类做记录使用. 需求: 1.元转分: 可传入字符串或者long型(隐式转换为long型也可)整数. 若传入为字符串,则通过替换小数点的方式转换 ...

  3. Android :RxTools一款强大实用的工具类集合

    QQ群 668524118,欢迎加入交流! Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | 一键集成UCrop选择圆形头像 | 一键集成二维码 ...

  4. android语音播放工具类,Android开发之MediaPlayer多媒体(音频,视频)播放工具类

    本文实例讲述了Android开发之MediaPlayer多媒体(音频,视频)播放工具类.分享给大家供大家参考,具体如下: package com.android.imooc.chat; import ...

  5. android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...

    大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了 ...

  6. android 拨打电话 实例,Android实战教程第三篇之简单实现拨打电话功能

    本文实例为大家分享了Android打电话功能的实现代码,需要一个文本输入框输入号码,需要一个按钮打电话. 本质:点击按钮,调用系统打电话功能. xml布局文件代码:: xmlns:tools=&quo ...

  7. android播放器实例,android音乐播放器实例

    郑州app开发android音乐播放器实例.布局代码是一个imagebutton和seekbar. 下面是java代码 MainActivity.java package cn.xhhkj.music ...

  8. android 图库开发实例,Android中从图库中选取图片实例详解

    android 从图库中选取图片 在android中,如何从图库gallary中挑选图片呢,其实很简单,步骤如下 1) 设计一个imageview,用来显示图库选出来的图片 android:orien ...

  9. Android 开源控件与常用开发框架开发工具类

    Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...

最新文章

  1. Dosbox+Masm汇编语言
  2. [CTO札记]架构的改造是个持续、全面、螺旋的过程
  3. 影像组学视频学习笔记(32)-使用SimpleITK进行N4偏置场校正、Li‘s have a solution and plan.
  4. numpy基本用法多维数组
  5. 【问链-区块链与生活】 第一课 你为什么又在熬夜?
  6. 【算法基础】数据结构导论第五章-图.pptx
  7. 金融python培训班_2019年做金融,一定要学Python!:附Python视频教程
  8. linux驱动大小,为什么在Linux字符驱动程序读取调用中大小总是= 4096?
  9. 超Mask RCNN速度4倍,仅在单个GPU训练的实时实例分割算法
  10. 对标印度的PostMan,一款中国接口测试软件的崛起
  11. python qt gui快速编程 pdf_翻译:《用python和Qt进行GUI编程》——介绍
  12. nuget.server搭建及实际测试
  13. 如何用计算机画磁滞回线,[画图的问题]怎么画类似于磁滞回线的图像?一个x值对应两个y值的...
  14. 10 个实战与面试【常用 Shell 脚本】编写
  15. oracle backup exec,通过Backup Exec实施Oracle灾难恢复
  16. lwj_C#_string类方法 可变字符串
  17. 【Web】Excle题库抽题组卷在jsp显示
  18. cpm、cpc、cps和cpa分别是什么意思
  19. 【论文检索】推荐一个可以免费下载论文的网站
  20. 全世界最好听的钢琴曲

热门文章

  1. python的错误处理——try语句
  2. 飞鸽传书2011帮助文档
  3. 产品采用的即时通讯软件是本地云架构
  4. 我最开始学dancing link的HTML5的时候
  5. “局域网聊天”开始了
  6. 苹果零售店每平方英尺能创造4000美元
  7. 成员函数指针与高性能的C++委托(下篇)
  8. 为什么中国开发不出流行的操作系统和编程语言呢?
  9. 如何用10万资金炒房到1000万
  10. pandas学习笔记四之读取写入文件