基本的に、ビューをある場所から別の場所に移動したいのですが、高さも徐々に上げたいので、setAnimationまたはstartAnimationを使用する必要があります。
_TranslateAnimation ta = new TranslateAnimation(0, 0, Animation.RELATIVE_TO_SELF, -otherview.getHeight());
ta.setDuration(1000);
ta.setFillAfter(true);
myview.startAnimation(ta); //or, which one to use and what is the difference.
myview.setAnimation(ta);
_
質問:この相対的なレイアウトを移動する方法は?
myview.scrollTo(x,y)
を試しましたが、役に立ちませんでした。ビューの高さを徐々に上げることはできますか?
StartAnimationを使用します。
以下はサンプルスニペットです
trans = new TranslateAnimation(0, 100, 0, 100);
trans.setDuration(250);
trans.setInterpolator(new AccelerateInterpolator(1.0f));
someView.startAnimation(trans);
それに加えて、私も徐々に高さを上げたいです、
このために、アニメーションをスケーリングします。
それらを1つのファイルに結合する場合は、Setを使用します。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="schemas.Android.com/apk/res/Android"
Android:interpolator="@Android:anim/linear_interpolator">
<scale Android:fromXScale="0.0" Android:fromYScale="0.0"
Android:toXScale="1.0" Android:toYScale="1.0"
Android:duration="700" Android:fillBefore="false" />
<translate Android:fromXDelta="-200" Android:fromYDelta="-200"
Android:duration="700" />
</set>
以下のコードをJavaファイル内に配置します:
Animation logoMoveAnimation = AnimationUtils.loadAnimation(this, R.anim.logoanimation);
logoIV.startAnimation(logoMoveAnimation);
setAnimation
このビューで再生する次のアニメーションを設定しますが、ビューアニメーションはまだ開始されていません。
startAnimation
アニメーションをすぐに再生する場合は、startAnimationを使用します。この方法では、開始時間と無効化をきめ細かく制御できますが、次のことを確認する必要があります。
1)アニメーションには開始時間が設定されています。
2)アニメーションが開始されることになっているときに、ビューが無効になります。
これが私の理解です。
SetAnimation
ビューがviewGroupに追加されると、アニメーションが呼び出されます。ビューが追加されると、アニメーションは呼び出されません。
StartAnimation
ビューが追加されていても、アニメーションは常に呼び出されます。