/** * Copyright (c) 2013 Nokia Corporation. All rights reserved. * Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation. * Oracle and Java are trademarks or registered trademarks of Oracle and/or its * affiliates. Other product and company names mentioned herein may be trademarks * or trade names of their respective owners. * See LICENSE.TXT for license information. */ package com.nokia.example.statusshout.animations; /** * Implements a linear easing curve. */ public class LinearEasingCurve extends EasingCurve { public boolean calculate(int first, int last, int duration) { _duration = duration; _steps = _duration / IntAnimation.UPDATE_INTERVAL; if (_steps < 3) { _values = null; return false; } _values = new int[_steps]; _currentStepIndex = 0; final int stepLength = (last - first) / (_steps - 1); _values[0] = first; _values[_steps - 1] = last; for (int i = 1; i < _steps - 1; ++i) { _values[i] = first + stepLength * i; } System.out.print("LinearEasingCurve.calculate(): Duration is " + _duration + " ms. The animation has "+ _steps + " steps: { "); for (int i = 0; i < _steps; ++i) { System.out.print(_values[i]); if (i < _steps - 1) System.out.print(", "); } System.out.println(" }"); return true; } }