1b505074e8273887fbcd1e933738a42e770085fb8Jim Miller/* 2b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * Copyright (C) 2011 The Android Open Source Project 3b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * 4b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * Licensed under the Apache License, Version 2.0 (the "License"); 5b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * you may not use this file except in compliance with the License. 6b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * You may obtain a copy of the License at 7b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * 8b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * http://www.apache.org/licenses/LICENSE-2.0 9b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * 10b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * Unless required by applicable law or agreed to in writing, software 11b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * distributed under the License is distributed on an "AS IS" BASIS, 12b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * See the License for the specific language governing permissions and 14b505074e8273887fbcd1e933738a42e770085fb8Jim Miller * limitations under the License. 15b505074e8273887fbcd1e933738a42e770085fb8Jim Miller */ 16b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 17b505074e8273887fbcd1e933738a42e770085fb8Jim Millerpackage com.android.internal.widget.multiwaveview; 18b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 19b505074e8273887fbcd1e933738a42e770085fb8Jim Millerimport android.animation.TimeInterpolator; 20b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 21b505074e8273887fbcd1e933738a42e770085fb8Jim Millerclass Ease { 22b505074e8273887fbcd1e933738a42e770085fb8Jim Miller private static final float DOMAIN = 1.0f; 23b505074e8273887fbcd1e933738a42e770085fb8Jim Miller private static final float DURATION = 1.0f; 24b505074e8273887fbcd1e933738a42e770085fb8Jim Miller private static final float START = 0.0f; 25b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 26b505074e8273887fbcd1e933738a42e770085fb8Jim Miller static class Linear { 27b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeNone = new TimeInterpolator() { 28b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 29b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return input; 30b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 31b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 32b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 33b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 34b505074e8273887fbcd1e933738a42e770085fb8Jim Miller static class Cubic { 35b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeIn = new TimeInterpolator() { 36b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 37b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return DOMAIN*(input/=DURATION)*input*input + START; 38b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 39b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 40b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeOut = new TimeInterpolator() { 41b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 42b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return DOMAIN*((input=input/DURATION-1)*input*input + 1) + START; 43b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 44b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 45b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeInOut = new TimeInterpolator() { 46b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 47b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return ((input/=DURATION/2) < 1.0f) ? 48b505074e8273887fbcd1e933738a42e770085fb8Jim Miller (DOMAIN/2*input*input*input + START) 49b505074e8273887fbcd1e933738a42e770085fb8Jim Miller : (DOMAIN/2*((input-=2)*input*input + 2) + START); 50b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 51b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 52b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 53b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 54b505074e8273887fbcd1e933738a42e770085fb8Jim Miller static class Quad { 55b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeIn = new TimeInterpolator() { 56b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation (float input) { 57b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return DOMAIN*(input/=DURATION)*input + START; 58b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 59b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 60b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeOut = new TimeInterpolator() { 61b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 62b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return -DOMAIN *(input/=DURATION)*(input-2) + START; 63b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 64b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 65b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeInOut = new TimeInterpolator() { 66b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 67b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return ((input/=DURATION/2) < 1) ? 68b505074e8273887fbcd1e933738a42e770085fb8Jim Miller (DOMAIN/2*input*input + START) 69b505074e8273887fbcd1e933738a42e770085fb8Jim Miller : (-DOMAIN/2 * ((--input)*(input-2) - 1) + START); 70b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 71b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 72b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 73b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 74b505074e8273887fbcd1e933738a42e770085fb8Jim Miller static class Quart { 75b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeIn = new TimeInterpolator() { 76b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 77b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return DOMAIN*(input/=DURATION)*input*input*input + START; 78b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 79b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 80b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeOut = new TimeInterpolator() { 81b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 82b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return -DOMAIN * ((input=input/DURATION-1)*input*input*input - 1) + START; 83b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 84b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 85b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeInOut = new TimeInterpolator() { 86b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 87b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return ((input/=DURATION/2) < 1) ? 88b505074e8273887fbcd1e933738a42e770085fb8Jim Miller (DOMAIN/2*input*input*input*input + START) 89b505074e8273887fbcd1e933738a42e770085fb8Jim Miller : (-DOMAIN/2 * ((input-=2)*input*input*input - 2) + START); 90b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 91b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 92b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 93b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 94b505074e8273887fbcd1e933738a42e770085fb8Jim Miller static class Quint { 95b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeIn = new TimeInterpolator() { 96b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 97b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return DOMAIN*(input/=DURATION)*input*input*input*input + START; 98b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 99b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 100b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeOut = new TimeInterpolator() { 101b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 102b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return DOMAIN*((input=input/DURATION-1)*input*input*input*input + 1) + START; 103b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 104b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 105b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeInOut = new TimeInterpolator() { 106b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 107b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return ((input/=DURATION/2) < 1) ? 108b505074e8273887fbcd1e933738a42e770085fb8Jim Miller (DOMAIN/2*input*input*input*input*input + START) 109b505074e8273887fbcd1e933738a42e770085fb8Jim Miller : (DOMAIN/2*((input-=2)*input*input*input*input + 2) + START); 110b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 111b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 112b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 113b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 114b505074e8273887fbcd1e933738a42e770085fb8Jim Miller static class Sine { 115b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeIn = new TimeInterpolator() { 116b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 117b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return -DOMAIN * (float) Math.cos(input/DURATION * (Math.PI/2)) + DOMAIN + START; 118b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 119b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 120b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeOut = new TimeInterpolator() { 121b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 122b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return DOMAIN * (float) Math.sin(input/DURATION * (Math.PI/2)) + START; 123b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 124b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 125b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public static final TimeInterpolator easeInOut = new TimeInterpolator() { 126b505074e8273887fbcd1e933738a42e770085fb8Jim Miller public float getInterpolation(float input) { 127b505074e8273887fbcd1e933738a42e770085fb8Jim Miller return -DOMAIN/2 * ((float)Math.cos(Math.PI*input/DURATION) - 1.0f) + START; 128b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 129b505074e8273887fbcd1e933738a42e770085fb8Jim Miller }; 130b505074e8273887fbcd1e933738a42e770085fb8Jim Miller } 131b505074e8273887fbcd1e933738a42e770085fb8Jim Miller 132b505074e8273887fbcd1e933738a42e770085fb8Jim Miller} 133