android path 动画效果 (很酷)
玩过 Path 的朋友一定会被其主页的功能按钮动画所吸引,觉得很神奇。
废话不多说,直接贴代码, 完整代码请下载。
附源码
private static void startAnimationsIn(ViewGroup viewgroup)
{
int count = viewgroup.getChildCount();
for(int i=0; i<count; i++){
if(viewgroup.getChildAt(i) instanceof InOutImageButton)
{
InOutImageButton imgView = (InOutImageButton)viewgroup.getChildAt(i);
ComposerButtonAnimation animation = new ComposerButtonAnimation(InOutAnimation.Direction.IN, 200, imgView);
long startOffset = i * 100 / (count -1);
animation.setStartOffset(startOffset);
animation.setInterpolator(new OvershootInterpolator(2F));
imgView.startAnimation(animation);
}
}
}
private static void startAnimationsOut(ViewGroup viewgroup)
{
int count = viewgroup.getChildCount();
for(int i=0; i<count; i++){
if(viewgroup.getChildAt(i) instanceof InOutImageButton)
{
InOutImageButton inoutimagebutton = (InOutImageButton)viewgroup.getChildAt(i);
int direction = InOutAnimation.Direction.OUT;
ComposerButtonAnimation anim = new ComposerButtonAnimation(direction, 200, inoutimagebutton);
long startOffset = (count -1 - i) * 100 / (count -1);
anim.setStartOffset(startOffset);
anim.setInterpolator(new AnticipateInterpolator(2F));
inoutimagebutton.startAnimation(anim);
}
}
}
protected void addInAnimation(View aview[])
{
ViewGroup.MarginLayoutParams marginlayoutparams = (ViewGroup.MarginLayoutParams)aview[0].getLayoutParams();
float fromX = -marginlayoutparams.leftMargin + xOffset;
float fromY = marginlayoutparams.bottomMargin - 13;
TranslateAnimation anim = new TranslateAnimation(fromX, 0F, fromY, 0F);
addAnimation(anim);
}
protected void addOutAnimation(View aview[])
{
android.view.ViewGroup.MarginLayoutParams marginlayoutparams = (android.view.ViewGroup.MarginLayoutParams)aview[0].getLayoutParams();
float toX = -marginlayoutparams.leftMargin + xOffset;
float toY = marginlayoutparams.bottomMargin - 13;
TranslateAnimation anim = new TranslateAnimation(0F, toX, 0F, toY);
addAnimation(anim);
}