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 vertically, picking up the 2310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * horizontal values from whatever is set on the Transformation already. When used in 2410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * conjunction with a TranslateXAnimation, allows independent animation of x and y 2510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * position. 2610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * @hide 2710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 2810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haasepublic class TranslateYAnimation extends TranslateAnimation { 2910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase float[] mTmpValues = new float[9]; 3010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 3110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 3210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Constructor. Passes in 0 for the x parameters of TranslateAnimation 3310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 3410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase public TranslateYAnimation(float fromYDelta, float toYDelta) { 3510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase super(0, 0, fromYDelta, toYDelta); 3610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 3710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 3810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 3910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Constructor. Passes in 0 for the x parameters of TranslateAnimation 4010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 4110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase public TranslateYAnimation(int fromYType, float fromYValue, int toYType, float toYValue) { 4210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase super(ABSOLUTE, 0, ABSOLUTE, 0, fromYType, fromYValue, toYType, toYValue); 4310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 4410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 4510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 4610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Calculates and sets y 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 dy = mFromYDelta + ((mToYDelta - mFromYDelta) * interpolatedTime); 5310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase t.getMatrix().setTranslate(mTmpValues[Matrix.MTRANS_X], dy); 5410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 5510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase} 56