【问题标题】:Android ScaleAnimationAndroid 缩放动画
【发布时间】:2009-10-26 08:51:11
【问题描述】:

我想使用 ScaleAnimation 在每次点击时增加一个视图。我已经管理动画的效果在完成 fillAfter 后仍然存在,但现在的问题是,动画总是从状态 0 开始(因为视图是在 XML 中定义的) - 单击时视图会重置并动画回来到第一个动画之后的状态。

动画在 XML 中定义:

<scale 
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
  android:fromXScale="1" 
  android:toXScale="1.5" 
  android:fromYScale="1" 
  android:toYScale="1.5" 
  android:pivotX="50%" 
  android:pivotY="50%" 
  android:duration="1000" 
  android:fillAfter="true" 
/>

【问题讨论】:

    标签: android animation


    【解决方案1】:

    我通过不使用 XML 中定义的动画解决了这个问题,而是这样做了

    anim = new ScaleAnimation(from, to, from, to, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    

    并在每次需要扩展它时进行调整。我不太确定这在性能方面是不是一件好事,但它工作得很好。

    【讨论】:

      【解决方案2】:

      动画究竟是如何定义的?

      使用 Java 代码定义 ScaleAnimation 时,您可以设置 fromX/fromY(看 here)开始缩放因子,所以我假设您可以对 XML 属性执行相同操作。

      【讨论】:

      • 可以,但它假定为原始大小。
      • 我还修复了包含 xml 定义的问题 :)。
      猜你喜欢
      • 2017-03-09
      • 2012-09-26
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      • 1970-01-01
      相关资源
      最近更新 更多