给控件添加炫酷的动画效果
来源:互联网 发布:工资软件 编辑:程序博客网 时间:2024/06/07 04:10
(重要)一个动画相关的git地址:https://github.com/daimajia/AndroidViewAnimations
demo下载地址:http://download.csdn.net/detail/android_zhengyongbo/9871490
1.先上工具类
import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.view.View;import java.util.ArrayList;import java.util.List;/** * Created by zhengyongbo on 2017/6/15. */public class AnimationUtil { private static AnimationUtil instance; private List<ObjectAnimator> animators; private AnimatorSet mAnimatorSet; public static AnimationUtil getInstance() { if(null==instance) { synchronized (AnimationUtil.class) { if (null==instance ) { instance = new AnimationUtil(); } } } return instance; } public void init() { animators = new ArrayList<>(); mAnimatorSet = new AnimatorSet(); } public List<ObjectAnimator> getAnimators() { return animators; } // 停止动画 public void stopAnimation() { try { if (mAnimatorSet != null) { mAnimatorSet.cancel(); if (animators.size() > 0) { for (int i = 0; i < animators.size(); i++) { animators.get(i).cancel(); } animators.clear(); } } } catch (Exception e) { } } /** * target: View animators: 动画,可以是一个效果,也可以多个效果,这些效果依次顺序执行 duration:多长时间内动画执行完 * repeatCount:动画循环播放次数 */ public void startAnimation(View target, List<ObjectAnimator> animators, long duration, int repeatCount) { try { if (animators.size() <= 0) { return; } for (int i = 0; i < animators.size(); i++) { // 动画效果不限,依次执行 mAnimatorSet.playTogether(animators.get(i)); // 设置动画循环播放次数 animators.get(i).setRepeatCount(repeatCount); } // 设置动画再多长时间内播完 mAnimatorSet.setDuration(duration); // 开始动画 mAnimatorSet.start(); } catch (Exception e) { } }}
2.使用
import android.animation.ObjectAnimator;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.ImageView;public class MainActivity extends AppCompatActivity { private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.tv);// https://github.com/daimajia/AndroidViewAnimations// 根据上面的项目改编,需要的animator参数在上面查找 AnimationUtil.getInstance().init();// 添加动画效果参数,可以是一个也可以是多个 ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "scaleX", 1, 1.25f, 0.75f, 1.15f, 1); AnimationUtil.getInstance().getAnimators().add(animator); ObjectAnimator animator1 = ObjectAnimator.ofFloat(imageView, "scaleY", 1, 0.75f, 1.25f, 0.85f, 1); AnimationUtil.getInstance().getAnimators().add(animator1);// 开始动画 AnimationUtil.getInstance().startAnimation(imageView,AnimationUtil.getInstance().getAnimators(), 1200, 9); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {// 停止动画 AnimationUtil.getInstance().stopAnimation(); } }); }}
这是我参考上面的Git地址自己封装的一个关于动画的工具类,demo里面只是呈现了一种动画animator的动画参数,如果需要其他的动画,可以去上面的git地址中的library中查询动画参数,若发现工具类中有问题,请在下面评论,谢谢!
阅读全文
0 0
- 给控件添加炫酷的动画效果
- 给控件添加动画效果
- IOS 给一个控件添加一个动画组的效果
- 给View控件添加动画效果
- jQquery :animated 给没有动画效果的元素添加动画
- 给ListView添加动画效果
- 给TableView添加一点动画效果
- 给progress 进度条添加动画效果
- 给ViewPager添加一些炫酷的动画
- Android中给控件设置动画效果
- IOs-控件上添加动画效果
- 为控件添加动画效果(安卓)
- 给listview添加动画效果,让你的app更绚
- 添加控件的约束动画
- android中动给组建添加动画载入效果
- Android wiki:02.给activity添加动画效果
- Android仿一点资讯收藏Toast动画效果(给Toast添加动画效果)
- 2、给控件添加边框和圆角效果
- python 将py脚本打包生成exe可执行文件
- Android10.3-ViewPager+Fragment实现仿微信界面
- Android应用程序运行机制
- 常用正则表达式
- 计算机视觉caffe之路第四篇:VOC2007数据集训练及预测实例
- 给控件添加炫酷的动画效果
- Openlayers之拖拽加载矢量数据
- 数据挖掘系列(3)--关联规则评价
- 写给自己的html
- Android—ViewPager+Activity(View) [已过时]
- java学习【web基础-html入门】
- UE4之流关卡
- scala运行springboot
- 【Spring】aop的简单实现