android 属性动画实例,Android 属性动画Animator工具类代码案例
代码分享->
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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工具类代码案例相关推荐
- 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引用 | 引用队列 | 针对不同 Android 版本开发不同的 Bitmap 复用策略 | 工具类代码 )
文章目录 一.Bitmap 复用池 二.弱引用 Bitmap 内存释放 三.从 Bitmap 复用池中获取对应可以被复用的 Bitmap 对象 1.Android 2.3.3(API 级别 10)及以 ...
- Android - 分转元、元转分 金额工具类
说明: Android涉及到的金额分转元.元转分,写成工具类做记录使用. 需求: 1.元转分: 可传入字符串或者long型(隐式转换为long型也可)整数. 若传入为字符串,则通过替换小数点的方式转换 ...
- Android :RxTools一款强大实用的工具类集合
QQ群 668524118,欢迎加入交流! Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | 一键集成UCrop选择圆形头像 | 一键集成二维码 ...
- android语音播放工具类,Android开发之MediaPlayer多媒体(音频,视频)播放工具类
本文实例讲述了Android开发之MediaPlayer多媒体(音频,视频)播放工具类.分享给大家供大家参考,具体如下: package com.android.imooc.chat; import ...
- android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...
大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了 ...
- android 拨打电话 实例,Android实战教程第三篇之简单实现拨打电话功能
本文实例为大家分享了Android打电话功能的实现代码,需要一个文本输入框输入号码,需要一个按钮打电话. 本质:点击按钮,调用系统打电话功能. xml布局文件代码:: xmlns:tools=&quo ...
- android播放器实例,android音乐播放器实例
郑州app开发android音乐播放器实例.布局代码是一个imagebutton和seekbar. 下面是java代码 MainActivity.java package cn.xhhkj.music ...
- android 图库开发实例,Android中从图库中选取图片实例详解
android 从图库中选取图片 在android中,如何从图库gallary中挑选图片呢,其实很简单,步骤如下 1) 设计一个imageview,用来显示图库选出来的图片 android:orien ...
- Android 开源控件与常用开发框架开发工具类
Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...
最新文章
- Dosbox+Masm汇编语言
- [CTO札记]架构的改造是个持续、全面、螺旋的过程
- 影像组学视频学习笔记(32)-使用SimpleITK进行N4偏置场校正、Li‘s have a solution and plan.
- numpy基本用法多维数组
- 【问链-区块链与生活】 第一课 你为什么又在熬夜?
- 【算法基础】数据结构导论第五章-图.pptx
- 金融python培训班_2019年做金融,一定要学Python!:附Python视频教程
- linux驱动大小,为什么在Linux字符驱动程序读取调用中大小总是= 4096?
- 超Mask RCNN速度4倍,仅在单个GPU训练的实时实例分割算法
- 对标印度的PostMan,一款中国接口测试软件的崛起
- python qt gui快速编程 pdf_翻译:《用python和Qt进行GUI编程》——介绍
- nuget.server搭建及实际测试
- 如何用计算机画磁滞回线,[画图的问题]怎么画类似于磁滞回线的图像?一个x值对应两个y值的...
- 10 个实战与面试【常用 Shell 脚本】编写
- oracle backup exec,通过Backup Exec实施Oracle灾难恢复
- lwj_C#_string类方法 可变字符串
- 【Web】Excle题库抽题组卷在jsp显示
- cpm、cpc、cps和cpa分别是什么意思
- 【论文检索】推荐一个可以免费下载论文的网站
- 全世界最好听的钢琴曲