Android的function发现animation

自5月份以来,Google已经在其网站上更新了材料devise指南。 我在一个名为“ 特征发现 ”的新章节中看到了一个有趣而酷炫的devise模式。

我想实现“发现”导航抽屉button的animation 。 导航抽屉和浮动操作button在Google Fit的上一次更新中有类似的animation。

像往常一样,对于Androidanimation,Google提供了一个非常棒的UI指南,但我们没有任何进一步的信息来为我们自己的应用程序开发它。

你知道是否有Android的本地解决scheme库来实现这些animation? 如果是的话,它是否可用于Android 5.0以下(API 21) – 它可以超过Android 4.1+?

编辑:我做了一个Github项目来实现相同的animation。 你可以在这里find它: https : //github.com/Guimareshh/Feature-discovery-animations

谢谢 !

您需要制作自定义animation,否则您可以使用Ripple Effect + Reveal并将其设置为导航抽屉图标,

循环显示animation

void enterReveal() { // previously invisible view final View myView = findViewById(R.id.my_view); // get the center for the clipping circle int cx = myView.getMeasuredWidth() / 2; int cy = myView.getMeasuredHeight() / 2; // get the final radius for the clipping circle int finalRadius = Math.max(myView.getWidth(), myView.getHeight()) / 2; // create the animator for this view (the start radius is zero) Animator anim = ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius); // make the view visible and start the animation myView.setVisibility(View.VISIBLE); anim.start(); } 

回答您的问题,Google总是提供有趣的Widget组件的新样本。 他们中的大多数只会被添加到Android的新版本。 这有不同的原因。 例如,因为新的小部件使用资源,并且只能在新版本的Android上工作,所以它具有更新的UI引擎。 和别的…

这就是为什么Google官方没有Revealanimation,它只适用于Android 5.0。

但是有很多的后端:

  • CircularReveal
  • ViewRevealAnimator

看看所有可用的,而不是Android Awesome Android用户界面的官方backports。

当Google引入Android材质时,没有任何元素的库。 但在短时间内,由不同的开发者写了许多有用的库。 但是在这个stream行之后,Google会为这个小部件引入所有的库。


所以结果是,没有后端,谷歌很可能不会引入这个小部件。 但是,听你的问题,我认为你可以做到这一点,而不是使用官方backports,上面链接。

我也在自定义视图中创build了这个DesignPattern。 你可以在这里find它。 请注意,这是我第一次发布自定义视图,它仍在开发中(所以他们可能会有一些错误和一些文件丢失),但它应该是足够好的日常使用。

要使用它将库添加到您的依赖关系:

 compile 'com.cilenco.libraries:featurediscovery:1.0.2' or compile 'com.cilenco.libraries:featurediscovery:+' always newest version 

之后,您可以像这样创build一个发现视图。 检出所有其他function,调整视图的外观和控制。

 DiscoveryView discoveryView = new DiscoveryView.Builder(context, view) .setPrimaryText(R.string.header) .setSecondaryText(R.string.description) .setOnClickListener(this) .build(); discoveryView.show(); 

为了使这个视图更好,请随时报告问题,如果您发现任何错误或有任何新的想法,请向存储库提出请求。