gpt4 book ai didi

java - Android - 来自动画 View 的 getAlpha()

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:01 25 4
gpt4 key购买 nike

我有这样的动画:

Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new DecelerateInterpolator());
fadeOut.setDuration(350);
myView.startAnimation(fadeOut);

我正在尝试在动画过程中获取它的 Alpha:

System.out.println(myView.getAlpha());

但是,它在整个动画过程中始终返回“1.0”。如何在动画过程中获取myView的实际alpha值?

最佳答案

通过对 AlphaAnimation 使用 Transformation,您可以直接从 AlphaAnimation 对象而不是 中检索 alpha 值查看

使用转换的目的:

Defines the transformation to be applied at one point in time of an Animation.


步骤:

  1. 创建一个新的Transformation.java 类,如https://sourcegraph.com/android.googlesource.com/platform/frameworks/base/-/blob/core/java/android/view/animation/Transformation.java 所示。 .

  2. 初始化一个Transformation对象:

    private Transformation myTransformation;
    mTransformation = new Transformation();
  3. 使用您的代码:

    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new DecelerateInterpolator());
    fadeOut.setDuration(350);
  4. 获取 View 层级开始绘制的时间(毫秒):

    final long time = myView.getDrawingTime();
  5. 获取要在指定时间点应用的转换。最后获取动画过程中的实际alpha值:

    fadeOut.getTransformation(time, myTransformation);
    final float myAlphaValue = myTransformation.getAlpha();

资源: https://sourcegraph.com/android.googlesource.com/platform/frameworks/base/-/blob/core/java/android/widget/ProgressBar.java#L1699 https://developer.android.com/reference/android/view/animation/Animation.html https://developer.android.com/reference/android/view/animation/Transformation.html

关于java - Android - 来自动画 View 的 getAlpha(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38435423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com