1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License 15 */ 16 17 package com.android.systemui; 18 19 import android.view.animation.AccelerateDecelerateInterpolator; 20 import android.view.animation.AccelerateInterpolator; 21 import android.view.animation.BounceInterpolator; 22 import android.view.animation.DecelerateInterpolator; 23 import android.view.animation.Interpolator; 24 import android.view.animation.LinearInterpolator; 25 import android.view.animation.PathInterpolator; 26 27 import com.android.systemui.statusbar.notification.stack.HeadsUpAppearInterpolator; 28 29 /** 30 * Utility class to receive interpolators from 31 */ 32 public class Interpolators { 33 public static final Interpolator FAST_OUT_SLOW_IN = new PathInterpolator(0.4f, 0f, 0.2f, 1f); 34 35 /** 36 * Like {@link #FAST_OUT_SLOW_IN}, but used in case the animation is played in reverse (i.e. t 37 * goes from 1 to 0 instead of 0 to 1). 38 */ 39 public static final Interpolator FAST_OUT_SLOW_IN_REVERSE = 40 new PathInterpolator(0.8f, 0f, 0.6f, 1f); 41 public static final Interpolator FAST_OUT_LINEAR_IN = new PathInterpolator(0.4f, 0f, 1f, 1f); 42 public static final Interpolator LINEAR_OUT_SLOW_IN = new PathInterpolator(0f, 0f, 0.2f, 1f); 43 public static final Interpolator ALPHA_IN = new PathInterpolator(0.4f, 0f, 1f, 1f); 44 public static final Interpolator ALPHA_OUT = new PathInterpolator(0f, 0f, 0.8f, 1f); 45 public static final Interpolator LINEAR = new LinearInterpolator(); 46 public static final Interpolator ACCELERATE = new AccelerateInterpolator(); 47 public static final Interpolator ACCELERATE_DECELERATE = new AccelerateDecelerateInterpolator(); 48 public static final Interpolator DECELERATE_QUINT = new DecelerateInterpolator(2.5f); 49 public static final Interpolator CUSTOM_40_40 = new PathInterpolator(0.4f, 0f, 0.6f, 1f); 50 public static final Interpolator HEADS_UP_APPEAR = new HeadsUpAppearInterpolator(); 51 public static final Interpolator ICON_OVERSHOT = new PathInterpolator(0.4f, 0f, 0.2f, 1.4f); 52 public static final Interpolator ICON_OVERSHOT_LESS 53 = new PathInterpolator(0.4f, 0f, 0.2f, 1.1f); 54 public static final Interpolator PANEL_CLOSE_ACCELERATED 55 = new PathInterpolator(0.3f, 0, 0.5f, 1); 56 public static final Interpolator BOUNCE = new BounceInterpolator(); 57 /** 58 * For state transitions on the control panel that lives in GlobalActions. 59 */ 60 public static final Interpolator CONTROL_STATE = new PathInterpolator(0.4f, 0f, 0.2f, 61 1.0f); 62 63 /** 64 * Interpolator to be used when animating a move based on a click. Pair with enough duration. 65 */ 66 public static final Interpolator TOUCH_RESPONSE = 67 new PathInterpolator(0.3f, 0f, 0.1f, 1f); 68 69 /** 70 * Like {@link #TOUCH_RESPONSE}, but used in case the animation is played in reverse (i.e. t 71 * goes from 1 to 0 instead of 0 to 1). 72 */ 73 public static final Interpolator TOUCH_RESPONSE_REVERSE = 74 new PathInterpolator(0.9f, 0f, 0.7f, 1f); 75 } 76