android动画添加Easings效果

时间:2015-10-04 12:30:53

标签: android android-animation material-design

我有一个LinearLayout。我的布局第一次消失,点击按钮我用左到右动画看到它。这是我的来源:

 public void ShowSlideMenu(LinearLayout layout)
{
    if(layout.getVisibility()==View.GONE)
    {
       if(LeftSwipe==null)
           LeftSwipe=AnimationUtils.loadAnimation(getActivity(),R.anim.slide_menu_lefttoright);
        layout.startAnimation(LeftSwipe);
        layout.setVisibility(View.VISIBLE);          
    }


}

这是xml动画代码:

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true">
<translate
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="100%"
    android:fromYDelta="0%"
    android:toXDelta="0%"
    android:toYDelta="0%" />

动画工作完美,但现在我想添加缓和效果。我读了材料设计动画,我尝试像这种缓和效果一样回归

  

https://www.google.com/design/spec/animation/authentic-motion.html#authentic-motion-mass-weight

也喜欢这个

  

http://api.jqueryui.com/easings/   如果有人知道解决方案,请帮助我谢谢大家

1 个答案:

答案 0 :(得分:1)

对此的一种解决方案是在动画集中添加一个interpolator

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:shareInterpolator="true">

       <translate
          android:duration="@android:integer/config_mediumAnimTime"
          android:fromXDelta="100%"
          android:fromYDelta="0%"
          android:toXDelta="0%"
          android:toYDelta="0%" />
</set>

插值器将获取您的动画并在动画持续时间内更改其速度。在示例中,我选择了一个减速插补器,该插补器使动画快速开始播放,然后在动画期间变得越来越慢。