从@Zielony的回答中,我确切地说到了我想要的地方.

下面是正确应用效果的代码.

scale_fab_in.xml

android:duration="500"

android:fromXScale="0"

android:fromYScale="0"

android:pivotX="50%"

android:pivotY="50%"

android:toXScale="1"

android:toYScale="1"

android:interpolator="@android:interpolator/overshoot"/>

scale_fab_out.xml

android:duration="400"

android:fromXScale="1"

android:fromYScale="1"

android:pivotX="50%"

android:pivotY="50%"

android:toXScale="0"

android:toYScale="0"

android:interpolator="@android:interpolator/overshoot"/>

编辑2016年2月16日 – 另一种方式:

将下面的代码放在您的FAB代码或任何其他视图中.

//global

private static final int FAB_ANIM_DURATION = 200;

public void hide() {

// Only use scale animation if FAB is visible

if (getVisibility() == View.VISIBLE) {

// Pivots indicate where the animation begins from

float pivotX = getPivotX() + getTranslationX();

float pivotY = getPivotY() + getTranslationY();

// Animate FAB shrinking

ScaleAnimation anim = new ScaleAnimation(1, 0, 1, 0, pivotX, pivotY);

anim.setDuration(FAB_ANIM_DURATION);

anim.setInterpolator(getInterpolator());

startAnimation(anim);

}

setVisibility(View.INVISIBLE);

}

public void show() {

show(0, 0);

}

public void show(float translationX, float translationY) {

// Set FAB's translation

setTranslation(translationX, translationY);

// Only use scale animation if FAB is hidden

if (getVisibility() != View.VISIBLE) {

// Pivots indicate where the animation begins from

float pivotX = getPivotX() + translationX;

float pivotY = getPivotY() + translationY;

ScaleAnimation anim;

// If pivots are 0, that means the FAB hasn't been drawn yet so just use the

// center of the FAB

if (pivotX == 0 || pivotY == 0) {

anim = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f,

Animation.RELATIVE_TO_SELF, 0.5f);

} else {

anim = new ScaleAnimation(0, 1, 0, 1, pivotX, pivotY);

}

// Animate FAB expanding

anim.setDuration(FAB_ANIM_DURATION);

anim.setInterpolator(getInterpolator());

startAnimation(anim);

}

setVisibility(View.VISIBLE);

}

private void setTranslation(float translationX, float translationY) {

if (Build.VERSION.SDK_INT >= VERSION_CODES.HONEYCOMB_MR1) {

animate().setInterpolator(getInterpolator()).setDuration(FAB_ANIM_DURATION)

.translationX(translationX).translationY(translationY);

}

}

private Interpolator getInterpolator() {

return AnimationUtils.loadInterpolator(getContext(), R.interpolator.fab_interpolator);

}

@android:interpolator/decelerate_cubic

android 按键上浮动画_android – 浮动动作按钮动画相关推荐

  1. Android FloatingActionButton(浮动动作按钮的动画 ) 使用详情

    目录 前言 1. Floating Action Button 2. 制作浮动操作按钮的菜单 2.1 显示浮动操作按钮菜单 2.2 隐藏浮动操作按钮菜单 3. 一个新的圆形动画 3.1 创建一个Act ...

  2. android 浮动小图标,android - 调整浮动动作按钮的图标大小(fab)

    android - 调整浮动动作按钮的图标大小(fab) 新的浮动操作按钮应为56dp x 56dp,其中的图标应为24dp x 24dp. 所以图标和按钮之间的空间应该是16dp. android: ...

  3. android 按键上浮动画_Android自定义动画酷炫的提交按钮

    今天开始记录工作中遇到的需要实现的动画效果实现自定义view动画,后期会有一些列动画设计思路的文章. 在这里分享的是设计实现思路,仅供学习使用,让大家拿到稍微复杂点的动画的时候要知道该如何去一步步分解 ...

  4. android的动态tab,Android自定义view仿QQ的Tab按钮动画效果(示例代码)

    话不多说 先上效果图 实现其实很简单,先用两张图 一张是背景的图,一张是笑脸的图片,笑脸的图片是白色,可能看不出来.实现思路:主要是再触摸view的时候同时移动这两个图片,但是移动的距离不一样,造成的 ...

  5. android共享元素动画_Android共享元素过渡动画

    android共享元素动画 In this tutorial we'll implement a different kind of animation transition namely Share ...

  6. ue4树叶飘落动画_Android:使用属性动画制作器的类似于树叶的动画

    ue4树叶飘落动画 在上一教程中,我们解释了属性动画通常如何工作. 现在,我们将进一步讲解如何创建属性动画,该动画将为ImageView产生类似于树叶飘落的效果,在其中我们显然将放置树叶的图像. 为此 ...

  7. java逐帧动画_android的逐帧动画

    逐帧动画是指按照给定的顺序轮流显示一定数目的图像而产生的动画效果.一般应用于比较简单的场景,比如一个监测手机wifi信号强度的应用中,不断的显示wifi信号的强弱程度就比较适合用逐帧动画. 逐帧动画的 ...

  8. css动画放大延迟,css3延时动画

    不太理解属性都是什么意思,但是有动画效果,我也是惊呆了 #animated_div{animation:animated_div 4s 1; -moz-animation:animated_div 4 ...

  9. Android 虚拟按键隐藏或显示之后共享元素动画异常解决方案

    背景 本篇算是共享元素的第三篇文章.主要还是因为第一篇才会衍生出来了第二篇和第三篇文章,后两篇均属于bug的分析和解决. 1.Android 仿微信朋友圈图片拖拽返回 2.Android 共享元素动画 ...

最新文章

  1. 我的android studio开发环境搭建历程(一部辛酸史)
  2. php 多线程上传,PHP多线程(pthreads)参数传递学习笔记
  3. 包含实时功能的ASP.NET系统结构
  4. 熊市利好,Bit-Z推出币圈最高返佣50%
  5. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
  6. c语言函数参数类型格式化,格式化输出的几种方法 主要介绍format函数的用法
  7. 【汇总推荐】深度学习、自然语言处理干货笔记汇总
  8. 查看一张表都有哪些用户有权限_有赞移动关于权限与审批流程的标准化
  9. RabbitMq(七) Topic模式介绍及代码示例
  10. linux 脚本 数字运算符,Shell 基本运算符
  11. 每秒处理10万订单的支付架构
  12. 【编程小题目6】字符数统计
  13. 数学建模常用算法汇总及python,MATLAB实现(七) —— sklearn和SPSS实现主成分分析
  14. 【云服务器】阿里云服务器+宝塔Linux零成本搭建全网音乐搜索引擎网站(在线音乐播放器),可在线播放可下载可分享它不香么?
  15. 分享| 电脑设置双屏或多屏显示2种简单方法,你能学会几种?
  16. 用计算机公式计算优良,『excel怎样合并单元格』如何在EXCEL中如何用公式计算全年级各班各科平均分、优秀率、合格率的方法...
  17. 手把手教你如何绘制一辆,“单身自行车”,哈哈哈!
  18. 报错:“TypeError: Cannot read property ‘0‘ of undefined“的原因
  19. JRebel and XRebel idea热部署插件的使用
  20. 三极管(如NPN)集电极正偏 发射极反偏会怎么样呢? 电流会倒流吗? 其他三种都知道,就是不知道这种情况...

热门文章

  1. java 二分查找 排序_java 冒泡排序 二分查找
  2. vue怎么使用php调取数据,vue 数据操作
  3. android程序更改pdf文件格式,Android根据pdf模板生成pdf文件
  4. C语言(CED)输入一个任意长度的正整数,将该数逆序输出。
  5. AC_Dream 1224 Robbers(贪心)
  6. 下载国外网站资料需java_Java开发必知道的国外10大网站
  7. linux db2 归档,DB2的归档模式设置方法
  8. perl数组硬引用_Perl 继续前行,Perl 7 将是下一代(硬核老王点评版)
  9. oracle的undo表空间不足,undo表空间不足,ORA-30036 unable to extend segment by ...
  10. 介绍一下再Apache下的Tomcat负载均衡的一些使用问题