嗨,我正在尝试每隔 5 秒为 android 中的视图高度设置动画:-
- 高度从 0 到 5
- 高度从 5 到 10
- 高度从 10 到 3 等
我正在使用下面的代码:-
public class ShowAnimation extends Animation{
float finalHeight;
View imageview;
public ShowAnimation(View view,float deltaheight){
this.imageview=view;
this.finalHeight=deltaheight;
}
protected void applyTransformation(float interpolatedtime,Transformation t){
imageview.getLayoutParams().height=(int)(finalHeight*interpolatedtime);
imageview.requestLayout();
}
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
@Override
public boolean willChangeBounds() {
return true;
}
}
并像这样初始化它:-
Animation anidelta = new ShowAnimation(delta, deltaheight);
anidelta.setDuration(500/* animation time */);
delta.startAnimation(anidelta);
但是有了这个我得到以下信息: -
- 高度从 0 到 5
- 高度从 0 到 10
- 高度从 0 到 3
我希望高度从以前的高度而不是每次都从 0 开始动画。有人可以在这里帮助我吗
编辑1:-我这样做了
Animation anidelta = new ShowAnimation(delta, deltaheight);
anidelta.setDuration(500/* animation time */);
anidelta.setFillAfter(true);
delta.startAnimation(anidelta);
但它仍然从 0 动画到新高度。