我开始学习 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个赞
只有在使用两个ImageView
s时才能实现一件事:您可以对两个图像进行淡入淡出,以便屏幕永远不会完全空白。
但是,在您的练习中,您只想按顺序交换图像。
从性能的角度来看,一个ImageView
可能比两个好,因为它显然会占用更少的内存和 CPU 时间,但我怀疑这会对现代设备产生明显的影响。
因此,只要您不同时为大量图片制作动画(想想足球队而不是辛普森一家),两种解决方案都可以。
请注意,使用您的代码原样将根本看不到动画,并且ImageView
似乎只显示第二张图片。这是因为animate()
触发动画但它不会等到动画完成。因此,您需要使用AnimationListener
orHandler.postDelayed()
来交换图片并在上一个动画完成后立即开始下一个动画。
添加回答
举报
0/150
提交
取消