@Override public ValueState evaluate(float fraction, ValueState startValue, ValueState endValue) { float timeStart = 1.0f - fraction; ValueState valueState = new ValueState(); PointF point = new PointF(); point.x = timeStart * timeStart * timeStart * (startValue.pointF.x) + 3 * timeStart * timeStart * fraction * (pointF1.x) + 3 * timeStart * fraction * fraction * (pointF2.x) + fraction * fraction * fraction * (endValue.pointF.x); point.y = timeStart * timeStart * timeStart * (startValue.pointF.y) + 3 * timeStart * timeStart * fraction * (pointF1.y) + 3 * timeStart * fraction * fraction * (pointF2.y) + fraction * fraction * fraction * (endValue.pointF.y); valueState.pointF = point; valueState.scale = Math.abs((float)(1.0f - Math.pow((1.0f - fraction), 2 * 5))); valueState.alpha = (int) (timeStart * 255); valueState.bitmap = getBitmap(); return valueState; }
@Override public ValueState createAnimatorEnd() { ValueState valueState = new ValueState(); valueState.bitmap = getBitmap(); valueState.alpha = 0; valueState.scale = 1; valueState.pointF = new PointF(new Random().nextInt(getMeasuredWith()), 0); return valueState; } }
@Override public ValueState evaluate(float fraction, ValueState startValue, ValueState endValue) { float timeStart = 1.0f - fraction; ValueState valueState = new ValueState(); PointF point = new PointF(); point.x = timeStart * timeStart * timeStart * (startValue.pointF.x) + 3 * timeStart * timeStart * fraction * (pointF1.x) + 3 * timeStart * fraction * fraction * (pointF2.x) + fraction * fraction * fraction * (endValue.pointF.x); point.y = timeStart * timeStart * timeStart * (startValue.pointF.y) + 3 * timeStart * timeStart * fraction * (pointF1.y) + 3 * timeStart * fraction * fraction * (pointF2.y) + fraction * fraction * fraction * (endValue.pointF.y); valueState.pointF = point; valueState.scale = 1; valueState.alpha = 255; valueState.bitmap = getBitmap(); return valueState; }
@Override public ValueState createAnimatorEnd() { ValueState valueState = new ValueState(); valueState.bitmap = getBitmap(); valueState.alpha = 255; valueState.scale = 1f; valueState.pointF = new PointF(new Random().nextInt(getMeasuredWith()), getMeasuredHeigh()); return valueState; } }
@Override public ValueState createAnimatorStart() { ValueState valueState = new ValueState(); valueState.bitmap = getBitmap(); valueState.alpha = 255; valueState.scale = 1f; valueState.pointF = new PointF(new Random().nextInt(getMeasuredWith()), -getBitmap().getHeight()); return valueState; }
@Override public ValueState createAnimatorStart() { ValueState valueState = new ValueState(); valueState.bitmap = getBitmap(); valueState.alpha = 255; valueState.scale = 0.1f; valueState.pointF = new PointF(getMeasuredWith() / 2, getMeasuredHeigh() - getBitmap().getHeight() / 2); return valueState; }