110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase/* 210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Copyright (C) 2015 The Android Open Source Project 310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * 410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Licensed under the Apache License, Version 2.0 (the "License"); 510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * you may not use this file except in compliance with the License. 610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * You may obtain a copy of the License at 710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * 810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * http://www.apache.org/licenses/LICENSE-2.0 910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * 1010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Unless required by applicable law or agreed to in writing, software 1110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * distributed under the License is distributed on an "AS IS" BASIS, 1210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * See the License for the specific language governing permissions and 1410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * limitations under the License. 1510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 1610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 1710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haasepackage android.view.animation; 1810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 1910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haaseimport android.graphics.Matrix; 2010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 2110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase/** 2210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Special case of TranslateAnimation that translates only horizontally, picking up the 2310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * vertical values from whatever is set on the Transformation already. When used in 2410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * conjunction with a TranslateYAnimation, allows independent animation of x and y 2510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * position. 2610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * @hide 2710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 2810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haasepublic class TranslateXAnimation extends TranslateAnimation { 2910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase float[] mTmpValues = new float[9]; 3010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 3110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 3210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Constructor. Passes in 0 for the y parameters of TranslateAnimation 3310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 3410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase public TranslateXAnimation(float fromXDelta, float toXDelta) { 3510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase super(fromXDelta, toXDelta, 0, 0); 3610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 3710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 3810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 3910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Constructor. Passes in 0 for the y parameters of TranslateAnimation 4010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 4110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase public TranslateXAnimation(int fromXType, float fromXValue, int toXType, float toXValue) { 4210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase super(fromXType, fromXValue, toXType, toXValue, ABSOLUTE, 0, ABSOLUTE, 0); 4310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 4410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 4510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 4610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Calculates and sets x translation values on given transformation. 4710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 4810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase @Override 4910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase protected void applyTransformation(float interpolatedTime, Transformation t) { 5010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase Matrix m = t.getMatrix(); 5110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase m.getValues(mTmpValues); 5210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase float dx = mFromXDelta + ((mToXDelta - mFromXDelta) * interpolatedTime); 5310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase t.getMatrix().setTranslate(dx, mTmpValues[Matrix.MTRANS_Y]); 5410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 5510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase} 56