Android Open Source - customhellochartdemo Chart Viewport Animator V8 From Project Back to project page customhellochartdemo .
License The source code is released under:
Apache License
If you think the Android project customhellochartdemo listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package lecho.lib.hellocharts.animation;
/ * w w w . j a v a 2 s . c o m * /
import lecho.lib.hellocharts.DummyChartAnimationListener;
import lecho.lib.hellocharts.model.Viewport;
import lecho.lib.hellocharts.view.Chart;
import android.os.Handler;
import android.os.SystemClock;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
public class ChartViewportAnimatorV8 implements ChartViewportAnimator {
long start;
boolean isAnimationStarted = false;
final Chart chart;
private Viewport startViewport = new Viewport();
private Viewport targetViewport = new Viewport();
private Viewport newViewport = new Viewport();
final long duration;
final Handler handler;
final Interpolator interpolator = new AccelerateDecelerateInterpolator();
private ChartAnimationListener animationListener = new DummyChartAnimationListener();
private final Runnable runnable = new Runnable() {
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - start;
if (elapsed > duration) {
isAnimationStarted = false;
handler.removeCallbacks(runnable);
chart.setCurrentViewport(targetViewport, false);
animationListener.onAnimationFinished();
return ;
}
float scale = Math.min(interpolator.getInterpolation((float ) elapsed / duration), 1);
float diffLeft = (targetViewport.left - startViewport.left) * scale;
float diffTop = (targetViewport.top - startViewport.top) * scale;
float diffRight = (targetViewport.right - startViewport.right) * scale;
float diffBottom = (targetViewport.bottom - startViewport.bottom) * scale;
newViewport.set(startViewport.left + diffLeft, startViewport.top + diffTop,
startViewport.right + diffRight, startViewport.bottom + diffBottom);
chart.setCurrentViewport(newViewport, false);
handler.postDelayed(this , 16);
}
};
public ChartViewportAnimatorV8(Chart chart) {
this (chart, FAST_ANIMATION_DURATION);
}
public ChartViewportAnimatorV8(Chart chart, long duration) {
this.chart = chart;
this.duration = duration;
this.handler = new Handler();
}
@Override
public void startAnimation(Viewport startViewport, Viewport targetViewport) {
this.startViewport.set(startViewport);
this.targetViewport.set(targetViewport);
isAnimationStarted = true;
animationListener.onAnimationStarted();
start = SystemClock.uptimeMillis();
handler.post(runnable);
}
@Override
public void cancelAnimation() {
isAnimationStarted = false;
handler.removeCallbacks(runnable);
chart.setCurrentViewport(targetViewport, false);
animationListener.onAnimationFinished();
}
@Override
public boolean isAnimationStarted() {
return isAnimationStarted;
}
@Override
public void setChartAnimationListener(ChartAnimationListener animationListener) {
if (null == animationListener) {
this.animationListener = new DummyChartAnimationListener();
} else {
this.animationListener = animationListener;
}
}
}
Java Source Code List lecho.lib.hellocharts.ChartComputator.java lecho.lib.hellocharts.DummyChartAnimationListener.java lecho.lib.hellocharts.DummyVieportChangeListener.java lecho.lib.hellocharts.PreviewChartComputator.java lecho.lib.hellocharts.ViewportChangeListener.java lecho.lib.hellocharts.animation.ChartAnimationListener.java lecho.lib.hellocharts.animation.ChartDataAnimatorV14.java lecho.lib.hellocharts.animation.ChartDataAnimatorV8.java lecho.lib.hellocharts.animation.ChartDataAnimator.java lecho.lib.hellocharts.animation.ChartViewportAnimatorV14.java lecho.lib.hellocharts.animation.ChartViewportAnimatorV8.java lecho.lib.hellocharts.animation.ChartViewportAnimator.java lecho.lib.hellocharts.animation.PieChartRotationAnimatorV14.java lecho.lib.hellocharts.animation.PieChartRotationAnimatorV8.java lecho.lib.hellocharts.animation.PieChartRotationAnimator.java lecho.lib.hellocharts.gesture.ChartScroller.java lecho.lib.hellocharts.gesture.ChartTouchHandler.java lecho.lib.hellocharts.gesture.ChartZoomer.java lecho.lib.hellocharts.gesture.ContainerScrollType.java lecho.lib.hellocharts.gesture.PieChartTouchHandler.java lecho.lib.hellocharts.gesture.PreviewChartTouchHandler.java lecho.lib.hellocharts.gesture.ZoomType.java lecho.lib.hellocharts.gesture.ZoomerCompat.java lecho.lib.hellocharts.model.AbstractChartData.java lecho.lib.hellocharts.model.ArcValue.java lecho.lib.hellocharts.model.AxisValue.java lecho.lib.hellocharts.model.Axis.java lecho.lib.hellocharts.model.BubbleChartData.java lecho.lib.hellocharts.model.BubbleValue.java lecho.lib.hellocharts.model.ChartData.java lecho.lib.hellocharts.model.ColumnChartData.java lecho.lib.hellocharts.model.ColumnValue.java lecho.lib.hellocharts.model.Column.java lecho.lib.hellocharts.model.ComboLineColumnChartData.java lecho.lib.hellocharts.model.LineChartData.java lecho.lib.hellocharts.model.Line.java lecho.lib.hellocharts.model.PieChartData.java lecho.lib.hellocharts.model.PointValue.java lecho.lib.hellocharts.model.SelectedValue.java lecho.lib.hellocharts.model.SimpleValueFormatter.java lecho.lib.hellocharts.model.ValueFormatter.java lecho.lib.hellocharts.model.ValueShape.java lecho.lib.hellocharts.model.Viewport.java lecho.lib.hellocharts.provider.BubbleChartDataProvider.java lecho.lib.hellocharts.provider.ColumnChartDataProvider.java lecho.lib.hellocharts.provider.ComboLineColumnChartDataProvider.java lecho.lib.hellocharts.provider.LineChartDataProvider.java lecho.lib.hellocharts.provider.PieChartDataProvider.java lecho.lib.hellocharts.renderer.AbstractChartRenderer.java lecho.lib.hellocharts.renderer.AxesRenderer.java lecho.lib.hellocharts.renderer.BubbleChartRenderer.java lecho.lib.hellocharts.renderer.ChartRenderer.java lecho.lib.hellocharts.renderer.ColumnChartRenderer.java lecho.lib.hellocharts.renderer.ComboLineColumnChartRenderer.java lecho.lib.hellocharts.renderer.LineChartRenderer.java lecho.lib.hellocharts.renderer.PieChartRenderer.java lecho.lib.hellocharts.renderer.PreviewColumnChartRenderer.java lecho.lib.hellocharts.renderer.PreviewLineChartRenderer.java lecho.lib.hellocharts.samples.AboutActivity.java lecho.lib.hellocharts.samples.BrokenLineChartActivity.java lecho.lib.hellocharts.samples.BrokenLineView.java lecho.lib.hellocharts.samples.BubbleChartActivity.java lecho.lib.hellocharts.samples.ColumnChartActivity.java lecho.lib.hellocharts.samples.ComboLineColumnChartActivity.java lecho.lib.hellocharts.samples.GoodBadChartActivity.java lecho.lib.hellocharts.samples.LineChartActivity.java lecho.lib.hellocharts.samples.LineColumnDependencyActivity.java lecho.lib.hellocharts.samples.MainActivity.java lecho.lib.hellocharts.samples.PieChartActivity.java lecho.lib.hellocharts.samples.PreviewColumnChartActivity.java lecho.lib.hellocharts.samples.PreviewLineChartActivity.java lecho.lib.hellocharts.samples.SpeedChartActivity.java lecho.lib.hellocharts.samples.TempoChartActivity.java lecho.lib.hellocharts.samples.ViewPagerChartsActivity.java lecho.lib.hellocharts.util.AxisAutoValues.java lecho.lib.hellocharts.util.Utils.java lecho.lib.hellocharts.view.AbstractChartView.java lecho.lib.hellocharts.view.BubbleChartView.java lecho.lib.hellocharts.view.Chart.java lecho.lib.hellocharts.view.ColumnChartView.java lecho.lib.hellocharts.view.ComboLineColumnChartView.java lecho.lib.hellocharts.view.LineChartView.java lecho.lib.hellocharts.view.PieChartView.java lecho.lib.hellocharts.view.PreviewColumnChartView.java lecho.lib.hellocharts.view.PreviewLineChartView.java lecho.lib.hellocharts.view.hack.HackyDrawerLayout.java lecho.lib.hellocharts.view.hack.HackyViewPager.java