为了账号安全,请及时绑定邮箱和手机立即绑定

Java - 淡入淡出和显示图像的不同方法

Java - 淡入淡出和显示图像的不同方法

潇湘沐 2021-11-17 15:42:05
我开始学习 Java,我遇到了一个 excersize,我需要淡出一个图像并通过淡入另一个图像来显示。我对这个 excersize 的解决方案是有一个 imageView 并淡出第一张图像,然后将图像源切换到第二张图像并将 imageView 淡入以便它应该显示新图像。这样做它会通过淡出然后用新图像显示我想要的所有图像。这是我的程序代码:public void fade(View view){    ImageView simpsonImageView = findViewById(R.id.simpsonsImageView);    simpsonImageView.animate().alpha(0f).setDuration(3000);    simpsonImageView.setImageResource(R.drawable.bart);    simpsonImageView.animate().alpha(1f).setDuration(3000);    simpsonImageView.animate().alpha(0f).setDuration(3000);    simpsonImageView.setImageResource(R.drawable.lisa);    simpsonImageView.animate().alpha(1f).setDuration(3000);}现在我在教程中看到我正在学习导师为每个图像使用不同的 imageView。我想知道这两个解决方案中哪个是正确的或至少可以接受的。或者它真的很重要并且两种解决方案都很好。
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

只有在使用两个ImageViews时才能实现一件事:您可以对两个图像进行淡入淡出,以便屏幕永远不会完全空白。

但是,在您的练习中,您只想按顺序交换图像。

从性能的角度来看,一个ImageView可能比两个好,因为它显然会占用更少的内存和 CPU 时间,但我怀疑这会对现代设备产生明显的影响。

因此,只要您不同时为大量图片制作动画(想想足球队而不是辛普森一家),两种解决方案都可以。

请注意,使用您的代码原样将根本看不到动画,并且ImageView似乎只显示第二张图片。这是因为animate()触发动画但它不会等到动画完成。因此,您需要使用AnimationListenerorHandler.postDelayed()来交换图片并在上一个动画完成后立即开始下一个动画。


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信