【问题标题】:How to animate circles in android如何在android中为圆圈设置动画
【发布时间】:2016-09-05 22:35:02
【问题描述】:

我是 android 新手,想玩一点动画。 我想做什么:

每个小圆圈都应该是可点击的,目前只有数字 2 可以代替 1,反之亦然。我想我知道如何绘制圆圈并定位它周围的小圆圈(我正在研究它:P),但我不知道如何实现动画。有任何想法吗?提前致谢!

【问题讨论】:

    标签: android animation


    【解决方案1】:

    哇……这是一个广泛的主题。

    根据您打算如何绘制圆圈(我会使用自定义的View),您可能需要创建某种Animation(可能是AnimationTranslation)。

    您甚至可以在 XML 中定义这些动画,很可能在 Animation Set 中定义,这样您就可以并行执行各种操作。

    这可能是一个起点:)

    【讨论】:

      【解决方案2】:

      创建一个值动画变量作为全局变量

      ValueAnimator mValueAnimator = new ValueAnimator();
      

      然后将动画监听器添加到 valueanimator。

      mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                      @Override
                      public void onAnimationUpdate(ValueAnimator animation) {
                          int angle = Integer.parseInt(animation.getAnimatedValue().toString());
                      }
                  });
      

      每当您想旋转绘图或自定义视图时,我假设您已使用角度来旋转它们。

      所以给动画师设置从角和到角。

      mValueAnimator.setIntValues(fromAngle, toAngle);
      

      开始动画。最好检查一下 animator 是否已经在运行。

      if (mValueAnimator.isRunning()) {
          mValueAnimator.end();
      }
      mValueAnimator.start();
      

      现在您将在 AnimatorUpdateListener 的 onAnimationupdate() 方法中获取您设置为动画器值的动画值。

      在这种情况下,该值是动画角度。使用角度为旋转设置动画。

      没有人喜欢线性动画。所以尝试使用插值器。

      mValueAnimator.setInterpolator(new DecelerateInterpolator());
      

      您可以使用 AccelerateInterpolator、OvershootInterpolator 等等。

      【讨论】:

        猜你喜欢
        • 2021-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多