Android Open Source - TileView Tween Handler






From Project

Back to project page TileView.

License

The source code is released under:

MIT License

If you think the Android project TileView 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 com.qozix.animation;
//w ww.  j av a2s.c o m
import java.util.ArrayList;

import android.os.Handler;
import android.os.Message;

public class TweenHandler extends Handler {

  private static final int RENDER = 1;
  
  private static TweenHandler instance = null;
  public static TweenHandler getInstance(){
    if(instance == null){
      instance = new TweenHandler();
    }
    return instance;
  }
  
  private ArrayList<Tween> tweens = new ArrayList<Tween>();
  
  public void addTween( Tween tween ) {
    tweens.add( tween );
    sendEmptyMessage( RENDER );
  }
  
  public void removeTween( Tween tween ) {
    tweens.remove( tween );
    if( tweens.size() == 0 ) {
      if( hasMessages( RENDER ) ) {
        removeMessages( RENDER );
      }
    }
  }
  
  @Override
  public void handleMessage( final Message message ) {
    boolean tweensAreRunning = false;
    ArrayList<Tween> condemned = new ArrayList<Tween>();
    for( Tween tween : tweens ) {
      boolean tweenIsComplete = runTween( tween );
      if( !tweensAreRunning ) {
        if( !tweenIsComplete ) {
          tweensAreRunning = true;
        }
      }
      if( tweenIsComplete ){
        condemned.add( tween );
      }
    }
    if( tweensAreRunning ) {
      sendEmptyMessage( RENDER );
    } else {
      if( hasMessages( RENDER ) ) {
        removeMessages( RENDER );
      }
    }
    tweens.removeAll( condemned );
  }
  
  private boolean runTween( Tween tween ) {
    double ellapsed = System.currentTimeMillis() - tween.getStartTime();
    ellapsed = Math.min( ellapsed, tween.getDuration() );
    tween.setEllapsed( ellapsed );
    double progress = tween.getProgress();
    double eased = tween.getEasedProgress();
    for ( TweenListener l : tween.getTweenListeners() ) {
      l.onTweenProgress( progress, eased );
    }
    boolean complete = ellapsed >= tween.getDuration();
    if ( complete ) {      
      for ( TweenListener l : tween.getTweenListeners() ) {
        l.onTweenComplete();
      }
    }    
    return complete;    
  }
}




Java Source Code List

com.qozix.animation.AnimationListener.java
com.qozix.animation.Animator.java
com.qozix.animation.TweenHandler.java
com.qozix.animation.TweenListener.java
com.qozix.animation.Tween.java
com.qozix.animation.easing.EasingEquation.java
com.qozix.animation.easing.Linear.java
com.qozix.animation.easing.Strong.java
com.qozix.layouts.AnchorLayout.java
com.qozix.layouts.FixedLayout.java
com.qozix.layouts.ScalingLayout.java
com.qozix.layouts.StaticLayout.java
com.qozix.layouts.TranslationLayout.java
com.qozix.layouts.ZoomPanLayout.java
com.qozix.os.AsyncTask.java
com.qozix.tileview.TileView.java
com.qozix.tileview.detail.DetailLevelEventListener.java
com.qozix.tileview.detail.DetailLevelPatternParserDefault.java
com.qozix.tileview.detail.DetailLevelPatternParser.java
com.qozix.tileview.detail.DetailLevelSet.java
com.qozix.tileview.detail.DetailLevelSetupListener.java
com.qozix.tileview.detail.DetailLevel.java
com.qozix.tileview.detail.DetailManager.java
com.qozix.tileview.geom.PositionManager.java
com.qozix.tileview.graphics.BitmapDecoderAssets.java
com.qozix.tileview.graphics.BitmapDecoderHttp.java
com.qozix.tileview.graphics.BitmapDecoder.java
com.qozix.tileview.hotspots.HotSpotEventListener.java
com.qozix.tileview.hotspots.HotSpotManager.java
com.qozix.tileview.hotspots.HotSpot.java
com.qozix.tileview.markers.CalloutManager.java
com.qozix.tileview.markers.MarkerEventListener.java
com.qozix.tileview.markers.MarkerManager.java
com.qozix.tileview.paths.DrawablePath.java
com.qozix.tileview.paths.PathHelper.java
com.qozix.tileview.paths.PathManager.java
com.qozix.tileview.samples.SampleManager.java
com.qozix.tileview.tiles.TileCache.java
com.qozix.tileview.tiles.TileManager.java
com.qozix.tileview.tiles.TileRenderHandler.java
com.qozix.tileview.tiles.TileRenderListener.java
com.qozix.tileview.tiles.TileRenderTask.java
com.qozix.tileview.tiles.TileTransitionListener.java
com.qozix.tileview.tiles.Tile.java
com.qozix.tileview.tiles.selector.TileSetSelectorByRange.java
com.qozix.tileview.tiles.selector.TileSetSelectorClosest.java
com.qozix.tileview.tiles.selector.TileSetSelectorMinimalUpScale.java
com.qozix.tileview.tiles.selector.TileSetSelector.java
com.qozix.utils.ViewCurator.java
com.qozix.widgets.Scroller.java