高さがfill_parentで、RelativeLayout内に200dpの初期上部マージンを持つLinearLayout(レイアウトと呼ばれる)があります。ボタンをクリックすると、topMargin が 0 になり、LinearLayout が拡張されます。次のコードを使用しています:
final RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT);
Animation animation = new Animation() {
@Override
protected void applyTransformation(float interpolatedTime,
Transformation t) {
int topMargin = (int)((1-interpolatedTime)*200);
layoutParams.setMargins(0, topMargin, 0, 0);
layout.setLayoutParams(layoutParams);
LogThis.debug("topMargin: "+topMargin);
}
};
animation.setDuration(1000);
layout.startAnimation(animation);
問題は、アニメーションを作成しますが、ソフトではないことです。4段階で変形するので見栄えが悪いです。
この種の変換をソフトにする方法はありますか?
前もって感謝します。
編集
私は最初の瞬間にこれを持っています:
そしてアニメーションの後、私はこれが欲しい:
TranslationAnimation を使用すると、次のようになります。