1 /* 2 * Copyright (C) 2015 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 android.view.animation; 18 19 import android.compat.annotation.UnsupportedAppUsage; 20 import android.graphics.Matrix; 21 22 /** 23 * Special case of TranslateAnimation that translates only vertically, picking up the 24 * horizontal values from whatever is set on the Transformation already. When used in 25 * conjunction with a TranslateXAnimation, allows independent animation of x and y 26 * position. 27 * @hide 28 */ 29 public class TranslateYAnimation extends TranslateAnimation { 30 float[] mTmpValues = new float[9]; 31 32 /** 33 * Constructor. Passes in 0 for the x parameters of TranslateAnimation 34 */ TranslateYAnimation(float fromYDelta, float toYDelta)35 public TranslateYAnimation(float fromYDelta, float toYDelta) { 36 super(0, 0, fromYDelta, toYDelta); 37 } 38 39 /** 40 * Constructor. Passes in 0 for the x parameters of TranslateAnimation 41 */ 42 @UnsupportedAppUsage TranslateYAnimation(int fromYType, float fromYValue, int toYType, float toYValue)43 public TranslateYAnimation(int fromYType, float fromYValue, int toYType, float toYValue) { 44 super(ABSOLUTE, 0, ABSOLUTE, 0, fromYType, fromYValue, toYType, toYValue); 45 } 46 47 /** 48 * Calculates and sets y translation values on given transformation. 49 */ 50 @Override applyTransformation(float interpolatedTime, Transformation t)51 protected void applyTransformation(float interpolatedTime, Transformation t) { 52 Matrix m = t.getMatrix(); 53 m.getValues(mTmpValues); 54 float dy = mFromYDelta + ((mToYDelta - mFromYDelta) * interpolatedTime); 55 t.getMatrix().setTranslate(mTmpValues[Matrix.MTRANS_X], dy); 56 } 57 } 58