Android:淡入淡出视图

Dom*_*icM 45 android image fade

我需要显示淡入和淡出的图像按钮(以及进出等等......)可以使用setAlpha设置透明度,但我如何淡入淡出?我的意思是我不能在另一个线程上做,因为你需要在UI线程上做这些事情,对吧?

我想它可以用动画完成,但我没有找到任何东西,因为我没有动画的经验,也不知道要搜索什么...

实际上我真正想要的是将一个图像淡入淡出另一个图像,但我想最简单的方法是将第一个图像按钮放在第二个图像按钮下方,然后淡化第二个图像按钮.或者有更简单的方法吗?

Dom*_*icM 77

这是我现在使用的解决方案,适用于低于12的API级别:

AlphaAnimation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(1000);
anim.setRepeatCount(NUM_REPEATS);
anim.setRepeatMode(Animation.REVERSE);
button.startAnimation(anim);
Run Code Online (Sandbox Code Playgroud)


Dav*_*aes 23

这是我们在项目中使用的动画.Spinner是一个视图,因此您可以使用imageview更改此视图.确实有两张图像在彼此之上,一张可见的图像是不可见的.这就是我们这样做的方式.希望能帮助到你.

    spinner.setVisibility(View.VISIBLE);
    spinner.setAlpha(0);

    spinner.animate().setDuration(200).alpha(1).setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            spinner.setVisibility(View.VISIBLE);
        }
    });

     infoActivityContent.animate().setDuration(200).alpha(0).setListener(new AnimatorListenerAdapter() {
       @Override
       public void onAnimationEnd(Animator animation) {
            infoActivityContent.setVisibility(View.GONE);

       mainPresenter.logout();
       }
     });
Run Code Online (Sandbox Code Playgroud)

  • 不,这通常不应该是一个问题。它们都在不同的线程上运行,一旦第一个线程完成它分配的所有内存将被释放。 (2认同)

Mar*_*lev 6

你必须阅读淡入淡出两种观点Android developers。在本教程中,说明了如何执行所需的操作。


Abh*_*Das 5

在科特林:

view.animate().alpha(1f).setDuration(1000)
            .setInterpolator(AccelerateInterpolator()).start()
Run Code Online (Sandbox Code Playgroud)

您可以添加一个AnimatorListenerAdapterinsetListener来处理其他视图状态。