INNER CODE UNIT · Java
totalHeight
robinhood/ticker · ticker/src/main/java/com/robinhood/ticker/TickerColumn.java:171
final float totalHeight = charHeight * Math.abs(endIndex - startIndex);
// The current base is then the part of the total height that we have progressed to
// from the animation. For example, there might be 5 characters, each character is
// 2px tall, so the totalHeight is 10. If we are at 50% progress, then our baseline
// in this column is at 5 out of 10 (which is the 3rd character with a -50% offset
// to the baseline).
final float currentBase = animationProgress * totalHeight;
// Given the current base, we now can find which character should drawn on the bottom.
// Note that this position is a float. For example, if the bottomCharPosition is
// 4.5, it means that the bottom character is the 4th character, and it has a -50%
// offset relative to the baseline.
final float bottomCharPosition = currentBase / charHeight;
// By subtracting away the integer part of bottomCharPosition, we now have the
// percentage representation of the bottom char's offset.
final float bottomCharOffsetPercentage = bottomCharPosition - (int) bottomCharPosition;