Android View淡出但不会淡入

标签 android android-animation fade

我创建了一个非常简单的动画,该动画应该使图标淡出然后淡入,然后淡出。 (仅供娱乐)

当您点击屏幕时,我希望图标在 50 毫秒内淡出,然后立即淡入,然后立即再次淡出。

但是,当我点击时,图标会淡出并且什么都不做!

方法如下:

public boolean onTouchEvent(MotionEvent event) {
        centralIcon = (ImageView) findViewById(R.id.centralIcon);
        float fullAlpha = centralIcon.getAlpha();
        centralIcon.animate().setDuration(50);
        centralIcon.animate().alpha(0);
        centralIcon.animate().alpha(fullAlpha);
        centralIcon.animate().alpha(0);
        return true;
    }

为什么它不会淡出?

最佳答案

发件人:http://developer.android.com/reference/android/view/ViewPropertyAnimator.html

public ViewPropertyAnimator alpha (float value)

在 API 级别 12 中添加 此方法将使 View 的 alpha 属性动画化为指定值。 已在属性上运行的动画将被取消。


部分问题以粗体显示。您可以通过再次调用 alpha 立即取消前两个 alpha 动画。 (您可以通过更改目标 alpha 值来对此进行测试。)即使情况并非如此,期望动画以您想要的方式运行也是没有意义的。 animate().alpha(value) 没有按照您的假设进行操作。

如果您希望 View 在 50 毫秒之类的时间段后开始淡入,您需要以某种方式指定该延迟。有很多方法可以使这个序列发生。例如,您可以使用您在以后的动画中指定的偏移量制作一个 AnimationSet(如 AndroidNoob 回答的那样)。您可以添加一个 AnimationListener 来监听动画结束以开始下一个。您可以创建另一个线程,在 UI 线程上运行一系列动画。

关于Android View淡出但不会淡入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116603/

相关文章:

android - 添加一个 AnimationDrawable 到 BottomNavigationView

javascript - 使用 jquery 显示更新

java - 代号一布局问题

android - kotlin 'onCreate' 不会覆盖任何内容

java - 安卓 : Saving and Restoring Activity data when switching Portrait and Landscape

jquery - jquery fadeIn 是如何工作的?对 animate() 做同样的事情

jQuery 在站点/内容加载后淡入淡出?

android - 包 com.google.android.maps 不存在 Android Studio

android - 如何在设置动画时在退出 fragment 上方显示进入 fragment 。

android - 显示 DialogFragment 动画从一个点开始