【问题标题】:setAnimation vs startAnimation in androidandroid中的setAnimation与startAnimation
【发布时间】:2016-01-16 02:01:37
【问题描述】:

我基本上想将一个视图从一个位置移动到另一个位置,另外我还想逐渐增加它的高度,那么我应该使用 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) 但没用。是否可以逐渐增加视图高度?

【问题讨论】:

    标签: android animation layout


    【解决方案1】:

    使用 startAnimation。

    以下是示例片段

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

    另外我也想逐渐增加它的高度,

    为此,您将缩放动画。

    如果您想将它们组合成单个文件,请使用 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。此方法允许对开始时间和失效进行细粒度控制,但您必须确保

    1) 动画设置了开始时间,

    2) 当动画应该开始时,视图将失效。

    【讨论】:

    • 是的。但它会在 700 毫秒后恢复到原始大小。
    • 你知道setanimation和other的区别吗?请帮助我
    • 动画完成后如何回调
    【解决方案2】:

    这是我的理解。

    设置动画

    当视图添加到viewGroup时,动画会被调用。当视图被添加时,动画不会被调用

    开始动画

    即使添加了视图,动画也会一直被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 2016-02-02
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多