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 17package android.view.animation; 18 19import android.graphics.Matrix; 20 21/** 22 * Special case of TranslateAnimation that translates only horizontally, picking up the 23 * vertical values from whatever is set on the Transformation already. When used in 24 * conjunction with a TranslateYAnimation, allows independent animation of x and y 25 * position. 26 * @hide 27 */ 28public class TranslateXAnimation extends TranslateAnimation { 29 float[] mTmpValues = new float[9]; 30 31 /** 32 * Constructor. Passes in 0 for the y parameters of TranslateAnimation 33 */ 34 public TranslateXAnimation(float fromXDelta, float toXDelta) { 35 super(fromXDelta, toXDelta, 0, 0); 36 } 37 38 /** 39 * Constructor. Passes in 0 for the y parameters of TranslateAnimation 40 */ 41 public TranslateXAnimation(int fromXType, float fromXValue, int toXType, float toXValue) { 42 super(fromXType, fromXValue, toXType, toXValue, ABSOLUTE, 0, ABSOLUTE, 0); 43 } 44 45 /** 46 * Calculates and sets x translation values on given transformation. 47 */ 48 @Override 49 protected void applyTransformation(float interpolatedTime, Transformation t) { 50 Matrix m = t.getMatrix(); 51 m.getValues(mTmpValues); 52 float dx = mFromXDelta + ((mToXDelta - mFromXDelta) * interpolatedTime); 53 t.getMatrix().setTranslate(dx, mTmpValues[Matrix.MTRANS_Y]); 54 } 55} 56