我有这样的动画:
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()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)