java–Android– 来自动画视图的getAlpha()

java–Android– 来自动画视图的getAlpha(),第1张

概述我有这样的动画:AnimationfadeOut=newAlphaAnimation(1,0);fadeOut.setInterpolator(newDecelerateInterpolator());fadeOut.setDuration(350);myView.startAnimation(fadeOut);我正在努力的是让它的Alpha在动画中如此:System.out.println(myView.getAlpha());但是,

我有这样的动画:

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转换,您可以直接从AlphaAnimation对象而不是VIEw中检索Alpha值.

使用转换的目的:

defines the transformation to be applIEd at one point in time of an Animation.

脚步:

>创建一个新的transformation.java类,如https://sourcegraph.com/android.googlesource.com/platform/frameworks/base/-/blob/core/java/android/view/animation/Transformation.java所示.
>初始化transformation对象:

private transformation mytransformation;mtransformation = new transformation();

>使用您的代码:

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

>获取视图层次结构图的开始时间(以毫秒为单位):

final long time = myVIEw.getDrawingTime();

>获取要在指定时间点应用的转换.最后,在动画期间获取实际的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 – 来自动画视图的getAlpha()全部内容,希望文章能够帮你解决java – Android – 来自动画视图的getAlpha()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存