private void showCloseAnim() {
int size = viewList.size();
if (size % 2 == 0) {
//是偶数
for (int i = 0; i < size; i++) {
if (i < size / 2) {
//坐标轴下边
AnimatorSet set = new AnimatorSet();
double x = -Math.cos(Math.PI * (size - 1 - 2 * i) / (4 * size - 4)) * 600;
double y = Math.sin(Math.PI * (size - 1 - 2 * i) / (4 * size - 4)) * 600;
set.playTogether(ObjectAnimator.ofFloat(viewList.get(i), "translationX", (float) x, 0),
ObjectAnimator.ofFloat(viewList.get(i), "translationY", (float) y, 0));
set.setInterpolator(new BounceInterpolator());
set.setDuration(500).setStartDelay(100 * i);
set.start(); } else {
//坐标轴上边
AnimatorSet set = new AnimatorSet();
double x = -Math.cos(Math.PI * (2 * i - size + 1) / (4 * size - 4)) * 600;
double y = -Math.sin(Math.PI * (2 * i - size + 1) / (4 * size - 4)) * 600;
set.playTogether(ObjectAnimator.ofFloat(viewList.get(i), "translationX", (float) x, 0),
ObjectAnimator.ofFloat(viewList.get(i), "translationY", (float) y, 0));
set.setDuration(500).setStartDelay(100 * i);
set.start();
}
} } else {
//是奇数
}
} private void showOpenAnim() {
int size = viewList.size();
if (size % 2 == 0) {
//是偶数
for (int i = 0; i < size; i++) {
if (i < size / 2) {
//坐标轴下边
AnimatorSet set = new AnimatorSet();
double x = -Math.cos(Math.PI * (size - 1 - 2 * i) / (4 * size - 4)) * 600;
double y = Math.sin(Math.PI * (size - 1 - 2 * i) / (4 * size - 4)) * 600;
set.playTogether(ObjectAnimator.ofFloat(viewList.get(i), "translationX", 0, (float) x),
ObjectAnimator.ofFloat(viewList.get(i), "translationY", 0, (float) y),
ObjectAnimator.ofFloat(viewList.get(i), "alpha", 0, 1).setDuration(2000));
set.setDuration(500).setStartDelay(100 * i);
set.start(); } else {
//坐标轴上边
AnimatorSet set = new AnimatorSet();
double x = -Math.cos(Math.PI * (2 * i - size + 1) / (4 * size - 4)) * 600;
double y = -Math.sin(Math.PI * (2 * i - size + 1) / (4 * size - 4)) * 600;
set.playTogether(ObjectAnimator.ofFloat(viewList.get(i), "translationX", 0, (float) x),
ObjectAnimator.ofFloat(viewList.get(i), "translationY", 0, (float) y),
ObjectAnimator.ofFloat(viewList.get(i), "alpha", 0, 1).setDuration(2000));
set.setDuration(500).setStartDelay(100 * i);
set.start();
}
} } else {
//是奇数
}
}

一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)的更多相关文章

  1. IOS的一个带动画的多项选择的控件(一)

    先上效果图: 这个程序分2个层次,一个是顶部的带UITextField的bar,一个是下拉选择的view,下拉选择的view带有4个自己定义的UIView 我们先定义一个UIViewControlle ...

  2. 一个类似抖音 APP 拍摄按钮效果的控件

    TouchButton 一个类似抖音 APP 拍摄按钮效果的控件 效果图预览 用法 <net.angrycode.library.TouchButton android:id="@+i ...

  3. WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法

    原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 问题描述 今天发现如果我想在一个TextBlock弄一个右键菜单,并且使用Command绑定,结果发 ...

  4. swing实现QQ登录界面1.0( 实现了同一张图片只加载一次)、(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件)

    swing实现QQ登录界面1.0( 实现了同一张图片只加载一次).(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件) 代码思路分析: 1.(同一张图片仅仅需要加载一次就够了,下 ...

  5. 斗天斗地斗控件 -- 与 Flyout 控件的斗争史

    前言 在淘宝的收藏夹页面本地化过程中,收藏的宝贝和店铺的分类展示通过一个下拉菜单的方式进行展示.如果单独为此从头重写一个控件,那么不但费时费力,包括所有的动画方式都要全新设计,而且还容易出 bug.好 ...

  6. 关于StatusStrip控件和StatusBar控件的小试

    今天,在网上查找资料,突然看到一个例子,但例子中提及的StatusBar控件,我发现在vs控件压根不存在,我就郁闷了,于是上网查找才知道,现在这个控件已经被StatusStrip控件给吞了,Statu ...

  7. 重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBlock, RichTextBlockOverflow

    原文:重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBl ...

  8. winform窗体 控件【公共控件】

    Button   按钮 布局 AutoSize    自动匹配尺寸 Location     确定控件位置,相对左上角坐标 Margin       控件与控件之间的距离 Size           ...

  9. DevExpress09、SimpleButton、CheckButton、DropDownButton、HScrollBar控件和VScrollBar控件

    SimpleButton控件 使用SimpleButton控件, 创建一个Button按钮, 可以通过其Image属性添加图片: 该控件与WinForm自带的Button按钮类似: 效果如下: Che ...

随机推荐

  1. laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)

    laravel基础课程---1.laravel安装及基础介绍(laravel如何安装) 一.总结 一句话总结: [修改composer镜像地址].[明确laravel的安装要求].[安装指定版本的la ...

  2. QQ通信原理

    转载自http://blog.csdn.net/li_xiao_ming/article/details/8106857 下面有4个基本的问答: 问题一:为什么只要可以连上互联网的计算机都可以用QQ相 ...

  3. HihoCoder 1590 : 紧张的会议室(区间最大+离散化)

    时间限制:20000ms 单点时限:2000ms 内存限制:256MB 描述 小Hi的公司最近员工增长迅速,同时大大小小的会议也越来越多:导致公司内的M间会议室非常紧张. 现在小Hi知道公司目前有N个 ...

  4. HDU2147 kiki's game (SG表找规律)

    Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes th ...

  5. 「IOI1998」「LuoguP4342」Polygon(区间dp

    P4342 [IOI1998]Polygon - 洛谷 题意翻译 题目可能有些许修改,但大意一致 多边形是一个玩家在一个有n个顶点的多边形上的游戏,如图所示,其中n=4.每个顶点用整数标记,每个边用符 ...

  6. CF-807A

    A. Is it rated? time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  7. visual editor ve1.5下载

    eclipse官网的ve下载不了,下面这个能下 http://sourceforge.net/projects/visualeditor/files/latest/download

  8. 设置a 标签打开新窗口新姿势

    设置页面中的所有a标签都打开新窗口 1,在写的时候就加上target="_blank" 2,在页头<head></head>里加上 <base tar ...

  9. [WIP]webpack入门

    创建: 2019/04/09  安装 npm install --save-dev webpack # 最新版 npm install --save-dev webpack@<version&g ...

  10. HDU5971【瞎搞】

    题意:略(忙着准备文化课...明天期中考啊.... 思路: 正解就是染色,2-sat搞: AC代码(虽然是错误的...数据水(过踏马的也行啊,起码打脸他啊!) 4 3 1 0 1 2 2 3 3 4 ...