Java 在安卓系统中,如何通过点击一幅图像使其淡出,并引入另一幅图像?

Java 在安卓系统中,如何通过点击一幅图像使其淡出,并引入另一幅图像?,java,android,xml,Java,Android,Xml,我想在android studio中制作一个应用程序。它显示了巴特·辛普森在发射时的照片。如果我点击图像,它将在2秒内淡出,荷马·辛普森的图像将出现。这就是我所尝试的: XML:- 但是,如果我在手机上运行这个应用程序,就会发现荷马·辛普森的图像在2秒钟后出现并消失 为什么会这样 如果我们以编程方式进行,理想情况下巴特·辛普森的形象应该淡出,荷马·辛普森应该出现 我做错什么了吗?您可以为动画设置侦听器,并在完成动画时更改图像资源 bartImageView.animate().alpha(0f)

我想在android studio中制作一个应用程序。它显示了巴特·辛普森在发射时的照片。如果我点击图像,它将在2秒内淡出,荷马·辛普森的图像将出现。这就是我所尝试的:

XML:-

但是,如果我在手机上运行这个应用程序,就会发现荷马·辛普森的图像在2秒钟后出现并消失

为什么会这样

如果我们以编程方式进行,理想情况下巴特·辛普森的形象应该淡出,荷马·辛普森应该出现


我做错什么了吗?

您可以为动画设置侦听器,并在完成动画时更改图像资源

bartImageView.animate().alpha(0f).setDuration(2000).setListener(new Animator.AnimatorListener() {
                    @Override
                    public void onAnimationStart(Animator animator) {
                        
                    }

                    @Override
                    public void onAnimationEnd(Animator animator) {
                  bartImageView.setImageResource(R.drawable.homer_simpson);
                    }

                    @Override
                    public void onAnimationCancel(Animator animator) {

                    }

                    @Override
                    public void onAnimationRepeat(Animator animator) {

                    }
                });

不要忘记在动画之后将alpha设置为1

bartImageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                bartImageView.animate().alpha(0).setDuration(2000).withEndAction(new Runnable() {
                    @Override
                    public void run() {

                        bartImageView.setImageResource(R.drawable.homer_simpson);
                        bartImageView.setAlpha(1f);
                    }
                });;


            }


        });

在我的代码中,为什么“bartImageView.setImageResource(R.drawable.homer_simpson);”先被执行,然后“bartImageView.animate().alpha(0).setDuration(2000);”被执行?你在
XMLAndroid:src=“@drawable/bart_simspon”
中设置了bart_simspon,你用xml初始化视图。我的问题是为什么
bartImageView.setImageResource(R.drawable.homer_simpson);
首先执行,而不是
bartImageView.animate().alpha(0).setDuration(2000);
当我第一次写这篇文章时,我设置了
XMLAndroid:src=“@drawable/bart_simpson
,因为我想先显示那张图片,你错了,
bartImageView.setImageResource(R.drawable.homer_simpson)
在此之前没有执行,因为您在XML中初始化imageview如果我没有放置
bartImageView.setAlpha(1f);
,默认alpha值是什么?0是您在动画中设置的值,因此它将不可见
bartImageView.animate().alpha(0f).setDuration(2000).setListener(new Animator.AnimatorListener() {
                    @Override
                    public void onAnimationStart(Animator animator) {
                        
                    }

                    @Override
                    public void onAnimationEnd(Animator animator) {
                  bartImageView.setImageResource(R.drawable.homer_simpson);
                    }

                    @Override
                    public void onAnimationCancel(Animator animator) {

                    }

                    @Override
                    public void onAnimationRepeat(Animator animator) {

                    }
                });
bartImageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                bartImageView.animate().alpha(0).setDuration(2000).withEndAction(new Runnable() {
                    @Override
                    public void run() {

                        bartImageView.setImageResource(R.drawable.homer_simpson);
                        bartImageView.setAlpha(1f);
                    }
                });;


            }


        });