setAnimation VS android系统startAnimation(setAnimati

2019-06-25 05:52发布

我基本上是想从1个位置移动视图到另一个,再加上我也想逐步提高它的高度,所以,我应该怎么用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)但没有用。 是否有可能逐渐增加的观点高度逐渐?

Answer 1:

使用startAnimation。

下面是示例代码段

trans = new TranslateAnimation(0, 100, 0, 100);
trans.setDuration(250);
trans.setInterpolator(new AccelerateInterpolator(1.0f));
someView.startAnimation(trans);

再加上我也想逐步提高它的高度,

为此,您将缩放动画。

如果你想将它们合并为单个文件使用设置。

<?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);

怡敏信会议

设置一个动画玩这个view.But观看动画还没有开始。

开始动画

如果你希望动画立即播放,使用startAnimation。 此方法提供允许在开始时间和无效细粒度的控制,但你必须确保

1)该动画的开始时间设定,

2)当动画应该启动视图将被无效。



Answer 2:

这是我的理解。

怡敏信会议

当视图被添加到的ViewGroup,动画将called.when视图已经被加入,动画将不调用

开始动画

动画将被调用,即使观点已经被添加所有的时间。



文章来源: setAnimation vs startAnimation in android