こんにちは私はAndroidでビューの高さをアニメーション化しようとしています5秒ごとに言います:-
- 高さは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からnewheightまでアニメートします。