Android Open Source - SimpleReader Path Animations






From Project

Back to project page SimpleReader.

License

The source code is released under:

Apache License

If you think the Android project SimpleReader 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.dreamteam.custom.ui;
/*from  w  ww  .j  a v a2 s.c o  m*/
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.view.animation.Animation;
import android.view.animation.AnticipateInterpolator;
import android.view.animation.OvershootInterpolator;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageButton;

public class PathAnimations {

  private static int xOffset = 16;
  private static int yOffset = -13;

  /**
   * ????
   */
  public static Animation getScaleAnimation(float fromX, float toX,
      float fromY, float toY, int durationMillis) {
    ScaleAnimation scale = new ScaleAnimation(fromX, toX, fromY, toY,
        Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
        0.5f);
    scale.setDuration(durationMillis);
    scale.setFillAfter(true);
    return scale;
  }
  
  /**
   * ????
   */
  public static Animation getRotateAnimation(float fromDegrees,
      float toDegrees, int durationMillis) {
    RotateAnimation rotate = new RotateAnimation(fromDegrees, toDegrees,
        Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
        0.5f);
    rotate.setDuration(durationMillis);
    rotate.setFillAfter(true);
    return rotate;
  }

  public static void initOffset(Context context) {
    /* 
     * density:????????????????????,????160?
     * ???density=160??1dp = 1px, density=240?, 1dp = (240/160) px = 1.5px.
     */
    xOffset = (int) (10.667 * context.getResources().getDisplayMetrics().density);
    yOffset = -(int) (8.667 * context.getResources().getDisplayMetrics().density);
  }

  public static void startAnimationsIn(ViewGroup viewgroup, int durationMillis) {
    for (int i = 0; i < viewgroup.getChildCount(); i++) {
      ImageButton inoutimagebutton = (ImageButton) viewgroup
          .getChildAt(i);
      inoutimagebutton.setVisibility(View.VISIBLE);
      inoutimagebutton.setFocusable(true);
      inoutimagebutton.setClickable(true);
      MarginLayoutParams mlp = (MarginLayoutParams) inoutimagebutton
          .getLayoutParams();
      Animation animation = new TranslateAnimation(Animation.ABSOLUTE,
          mlp.rightMargin - xOffset, Animation.RELATIVE_TO_SELF, 0F,
          Animation.ABSOLUTE, yOffset + mlp.bottomMargin,
          Animation.RELATIVE_TO_SELF, 0F);

      animation.setFillAfter(true);
      animation.setDuration(durationMillis);
      animation.setStartOffset((i * 100)
          / (-1 + viewgroup.getChildCount()));
      animation.setInterpolator(new OvershootInterpolator(2F));
      inoutimagebutton.startAnimation(animation);
    }
  }

  public static void startAnimationsOut(ViewGroup viewgroup,
      int durationMillis) {
    for (int i = 0; i < viewgroup.getChildCount(); i++) {
      final ImageButton inoutimagebutton = (ImageButton) viewgroup
          .getChildAt(i);
      MarginLayoutParams mlp = (MarginLayoutParams) inoutimagebutton
          .getLayoutParams();
      Animation animation = new TranslateAnimation(0F, mlp.rightMargin
          - xOffset, 0F, yOffset + mlp.bottomMargin);

      animation.setFillAfter(true);
      animation.setDuration(durationMillis);
      animation.setStartOffset(((viewgroup.getChildCount() - i) * 100)
          / (-1 + viewgroup.getChildCount()));
      animation.setInterpolator(new AnticipateInterpolator(2F));
      animation.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation arg0) {
          
        }

        @Override
        public void onAnimationRepeat(Animation arg0) {
        }

        @Override
        public void onAnimationEnd(Animation arg0) {
          inoutimagebutton.setVisibility(View.GONE);
          inoutimagebutton.setFocusable(false);
          inoutimagebutton.setClickable(false);
        }
      });
      inoutimagebutton.startAnimation(animation);
    }

  }

}




Java Source Code List

com.dreamteam.app.adapter.CategoryDetailAdapter.java
com.dreamteam.app.adapter.FeedCategoryAdapter.java
com.dreamteam.app.adapter.GridAdapter.java
com.dreamteam.app.adapter.GuideViewPagerAdapter.java
com.dreamteam.app.adapter.ItemListAdapter.java
com.dreamteam.app.adapter.MPagerAdapter.java
com.dreamteam.app.commons.AppConfig.java
com.dreamteam.app.commons.AppContext.java
com.dreamteam.app.commons.HtmlFilter.java
com.dreamteam.app.commons.IFlyHelper.java
com.dreamteam.app.commons.ItemListEntityParser.java
com.dreamteam.app.commons.SectionHelper.java
com.dreamteam.app.commons.SeriaHelper.java
com.dreamteam.app.commons.SkinManager.java
com.dreamteam.app.commons.UIHelper.java
com.dreamteam.app.config.Contants.java
com.dreamteam.app.db.DbManager.java
com.dreamteam.app.db.FavoItemDbHelper.java
com.dreamteam.app.db.FeedDBManager.java
com.dreamteam.app.db.provider.RSSFeedCategoryProvider.java
com.dreamteam.app.entity.FeedItem.java
com.dreamteam.app.entity.Feed.java
com.dreamteam.app.entity.ItemListEntity.java
com.dreamteam.app.entity.RSSFeedCategroy.java
com.dreamteam.app.entity.Section.java
com.dreamteam.app.img.FileCacheManager.java
com.dreamteam.app.img.FileCache.java
com.dreamteam.app.img.ICache.java
com.dreamteam.app.img.ImageLoadTask.java
com.dreamteam.app.img.ImageLoad.java
com.dreamteam.app.img.ImageLoader.java
com.dreamteam.app.img.MemoryCache.java
com.dreamteam.app.rss.Dates.java
com.dreamteam.app.rss.Integers.java
com.dreamteam.app.rss.MediaAttributes.java
com.dreamteam.app.rss.MediaEnclosure.java
com.dreamteam.app.rss.MediaThumbnail.java
com.dreamteam.app.rss.RSSBase.java
com.dreamteam.app.rss.RSSConfig.java
com.dreamteam.app.rss.RSSException.java
com.dreamteam.app.rss.RSSFault.java
com.dreamteam.app.rss.RSSFeed.java
com.dreamteam.app.rss.RSSHandler.java
com.dreamteam.app.rss.RSSItem.java
com.dreamteam.app.rss.RSSLoader.java
com.dreamteam.app.rss.RSSParserSPI.java
com.dreamteam.app.rss.RSSParser.java
com.dreamteam.app.rss.RSSReaderException.java
com.dreamteam.app.rss.RSSReader.java
com.dreamteam.app.rss.Resources.java
com.dreamteam.app.ui.About.java
com.dreamteam.app.ui.BaseActivity.java
com.dreamteam.app.ui.BaseTitledActivity.java
com.dreamteam.app.ui.CategoryDetailActivity.java
com.dreamteam.app.ui.ColorListActivity.java
com.dreamteam.app.ui.FavoriteItemList.java
com.dreamteam.app.ui.FeedCategoryActivity.java
com.dreamteam.app.ui.FeedbackUI.java
com.dreamteam.app.ui.GuideActivity.java
com.dreamteam.app.ui.ImageDialog.java
com.dreamteam.app.ui.ImagesBrowseActivity.java
com.dreamteam.app.ui.ItemDetailActivity.java
com.dreamteam.app.ui.ItemListActivity.java
com.dreamteam.app.ui.LocalImageBrowseActivity.java
com.dreamteam.app.ui.LoginDialog.java
com.dreamteam.app.ui.MainActivity.java
com.dreamteam.app.ui.Setting.java
com.dreamteam.app.ui.SplashActivity.java
com.dreamteam.app.ui.SwitchBgActivity.java
com.dreamteam.app.ui.WidgetProvider.java
com.dreamteam.app.ui.adapter.ColorListAdapter.java
com.dreamteam.app.utils.CategoryNameExchange.java
com.dreamteam.app.utils.DateUtils.java
com.dreamteam.app.utils.FileUtils.java
com.dreamteam.app.utils.HttpUtils.java
com.dreamteam.app.utils.ImageLoader.java
com.dreamteam.app.utils.ImageUtils.java
com.dreamteam.app.utils.Logger.java
com.dreamteam.app.utils.MD5.java
com.dreamteam.app.utils.StringUtils.java
com.dreamteam.app.wallpaper.ChildAdapter.java
com.dreamteam.app.wallpaper.GroupGridAdapter.java
com.dreamteam.app.wallpaper.ImageBean.java
com.dreamteam.app.wallpaper.MyImageView.java
com.dreamteam.app.wallpaper.NativeImageLoader.java
com.dreamteam.app.wallpaper.WallPaperManager.java
com.dreamteam.custom.ui.PathAnimations.java
com.dreamteam.custom.ui.PullToRefreshListView.java