Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果

前言: 每次写之前都会来一段(废)话.{心塞...}

Google Play首页两个tab背景用了这个效果,三星计算器用了这个效果,酷安也看见这个效果,但就是叫不出名字!!!抓狂啊!!!

没办法,由于这个效果类似 涟漪效果,所以我就用** Ripple 为关键字,找过RippleDrawable** ,但是没发现...最后在Google的帮助下,我从一个陌生的网站看到了Reveal Effect中文翻译为:揭示效果(翻译不对你来咬我啊,哈哈哈2333)

好了,废话不多说了,先来看个效果吧.



ps:图是studio录的mp4,然后转的,gif有点卡顿感,实际效果很顺滑

核心代码

  1. ViewAnimationUtils.createCircularReveal(
  2. View view,//目标view
  3. int centerX,//开始动画的起点x坐标(相对于目标view而言)
  4. int centerY,//开始动画的起点y坐标(相对于目标view而言)
  5. float startRadius,//初始半径
  6. float endRadius//结束半径
  7. );

官方文档: ViewAnimationUtils.createCircularReveal

example展示

1. activity layout 布局

  1. <LinearLayout
  2. android:id="@+id/activity_reveal_effect"
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical"
  8. tools:context="com.didikee.demos.ui.activity.RevealEffectActivity">
  9. <View
  10. android:id="@+id/view"
  11. android:layout_width="match_parent"
  12. android:layout_height="250dp"
  13. android:background="@color/colorAccent"
  14. />
  15. <Button
  16. android:id="@+id/bt_action"
  17. android:text="展开/收缩"
  18. android:layout_width="match_parent"
  19. android:layout_height="wrap_content"/>
  20. </LinearLayout>

**2. java 代码 **

  1. private View view;
  2. private double radio;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_reveal_effect);
  7. view = findViewById(R.id.view);
  8. findViewById(R.id.bt_action).setOnClickListener(new View.OnClickListener() {
  9. @Override
  10. public void onClick(View v) {
  11. createAnimation(view).start();
  12. }
  13. });
  14. }
  15. @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  16. public Animator createAnimation(View v) {
  17. Animator animator;
  18. if (radio == 0L) {
  19. radio = Math.sqrt(Math.pow(view.getWidth(), 2) + Math.pow(view.getHeight(), 2));
  20. }
  21. if (isOn) {
  22. animator = ViewAnimationUtils.createCircularReveal(
  23. v,// 操作的视图
  24. 0,// 动画开始的中心点X
  25. 0,// 动画开始的中心点Y
  26. (float) radio,// 动画开始半径
  27. 0);// 动画结束半径
  28. } else {
  29. animator = ViewAnimationUtils.createCircularReveal(
  30. v,// 操作的视图
  31. 0,// 动画开始的中心点X
  32. 0,// 动画开始的中心点Y
  33. 0,// 动画开始半径
  34. (float) radio);// 动画结束半径
  35. }
  36. animator.addListener(new Animator.AnimatorListener() {
  37. @Override
  38. public void onAnimationStart(Animator animation) {
  39. if (!isOn) {
  40. view.setVisibility(View.VISIBLE);
  41. }
  42. }
  43. @Override
  44. public void onAnimationEnd(Animator animation) {
  45. if (isOn) {
  46. view.setVisibility(View.INVISIBLE);
  47. }
  48. isOn = !isOn;
  49. }
  50. @Override
  51. public void onAnimationCancel(Animator animation) {
  52. }
  53. @Override
  54. public void onAnimationRepeat(Animator animation) {
  55. }
  56. });
  57. animator.setInterpolator(new DecelerateInterpolator());
  58. animator.setDuration(500);
  59. return animator;
  60. }
  61. private boolean isOn = true;//记录view的状态,第一次进去是可见的,记为true,不可见记为false

结束

代码很简单,应该有和我一样,见过这个效果但是说不出名字,知道的就当温习了哈哈,不知道可以收藏点赞以备不时只需 哇额啊(〜)〜

Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果的更多相关文章

  1. Android Material Design Ripple Effect在Android5.0(SDK=21)以下Android版本崩溃问题解决

    Android Material Design Ripple Effect在Android5.0(SDK=21)以下Android版本崩溃问题解决 附录1的Android Ripple Effect水 ...

  2. Android Material Design : Ripple Effect水波波纹荡漾的视觉交互设计

     Android Material Design : Ripple Effect水波波纹荡漾的视觉交互设计 Android Ripple Effect波纹荡漾效果,是Android Materia ...

  3. GooglePlay 首页效果----tab的揭示效果(Reveal Effect) (1)

    GooglePlay 首页效果----tab的揭示效果(Reveal Effect) (1) 前言: 无意打开GooglePlay app来着,然后发现首页用了揭示效果,连起来用着感觉还不错. 不清楚 ...

  4. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  5. Material Design风格的水波涟漪效果(Ripple Effect)的实现

    Material Design是Google在2014年Google I/O大会上推出的一套全新的设计语言,经过接近两年的发展,可谓是以燎原之势影响着整个设计交互生态,和Material Design ...

  6. Android Material Design控件学习(三)——使用TextInputLayout实现酷市场登录效果

    前言 前两次,我们学习了 Android Material Design控件学习(一)--TabLayout的用法 Android Material Design控件学习(二)--Navigation ...

  7. [经验总结]material design效果与开发总结

    首先贴一个參考过的文章,写的不错: 在低版本号android系统上实现Material design应用 以下是工作中总结出来的,列出了在<5.0的设备是怎样实现material design的 ...

  8. 【转】Material Design 折叠效果 Toolbar CollapsingToolbarLayout AppBarLayout

    我非常喜欢Material Design里折叠工具栏的效果,bilibili Android客户端视频详情页就是采用的这种设计.这篇文章的第二部分我们就通过简单的模仿bilibili视频详情页的实现来 ...

  9. [转]ANDROID L——Material Design详解(动画篇)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 转自:http://blog.csdn.net/a396901990/article/de ...

随机推荐

  1. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  2. 一次修改闭源 Entity Provider 程序集以兼容新 EntityFramework 的过程

    读完本文你会知道,如何在没有源码的情况下,直接修改一个 DLL 以去除 DLL 上的强命名限制,并在该程序集上直接添加你的“友元程序集(一种特殊的 Attribute,将它应用在程序集上,使得程序集内 ...

  3. SQL Server-聚焦NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL性能分析(十八)

    前言 本节我们来综合比较NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL的性能,简短的内容,深入的理解,Always to review the basics. ...

  4. 立即执行函数表达式(IIFE)

    原文地址:benalman.com/news/2010/11/immediately-invoked-function-expression/ 译者:nzbin 也许你还没有注意到,我是一个对术语比较 ...

  5. java 利用ManagementFactory获取jvm,os的一些信息--转

    原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...

  6. jQuery的属性

    The Write Less , Do More ! jQuery的属性 1. attr(name|properties|key,value|fn) : 设置或返回被选元素的属性值 ①获取属性 < ...

  7. PAT练习题目录

    点题号就能查看题解了,另外代码也放在了开源中国码云上: 甲级:代码集合:https://git.oschina.net/firstmiki/PAT-Advanced-Level-Practise 10 ...

  8. 记一次.NET代码重构

    好久没写代码了,终于好不容易接到了开发任务,一看时间还挺充足的,我就慢慢整吧,若是遇上赶进度,基本上直接是功能优先,完全不考虑设计.你可以认为我完全没有追求,当身后有鞭子使劲赶的时候,神马设计都是浮云 ...

  9. Quartz2D总结

    天了噜,脑子完全懵了,最起码说出来个上下文啊,连这个都给忘了,特此总结一下,并以此缅怀这次面试 Quartz2D的API来自于Core Graphics(这就是为什么CGContextRef是以CG开 ...

  10. 创建maven项目(cmd 命令)

    2016五月 22 原 创建maven项目(cmd 命令) 分类:maven (994) (0) 1.普通方式创建 1)进入cmd窗口执行 mvn archetype:generate 2) 光标停止 ...