android动画垂直移动

public void slideview(final View view, final float p1, final float p2) {
TranslateAnimation animation = new TranslateAnimation(0, 0, p1, p2);
animation.setInterpolator(new OvershootInterpolator());
animation.setDuration(1000);
animation.setStartOffset(300);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
int left = view.getLeft();
int top = view.getTop() + (int) (p2 - p1);
int width = view.getWidth();
int height = view.getHeight();
view.clearAnimation();
view.layout(left, top, left + width, top + height);
}
});
view.startAnimation(animation);
}

 

调用示例: 
移动到目标位置
slideview(view,0, distance);
从目标位置移回原位
slideview(view,0, -distance); 

注:clearAnimation() 必须在 layout(l,t,r,b) 前执行,否则会出错~

posted on 2013-12-13 13:42  feelaway  阅读(353)  评论(0)    收藏  举报

导航