目标:单击应用中的图像并使其淡出以显示不同的图像。
我的方法:让第一个图像在2000ms后消失,然后将第一个图像的图像资源更改为第二个图像,使第二个图像出现
我有一个由我的导师提供的正确解决方案,所以我不需要任何正确的解决方案。我想知道的是为什么我的解决方案不起作用,即为什么 setImageResource() 在开始时将 Image1 设置为 Image 2,尽管在最后调用了它
这是我创建的淡入淡出功能,当单击 image1 时它会转到该功能
公共(public)无效淡入淡出(查看 View ){
ImageView image1 = findViewById(R.id.image1);
image1.animate().alpha(0f).setDuration(2000);
image1.setImageResource(R.drawable.cat2);
}
实际输出:单击图像 1 后,图像 1 立即变为图像 2,然后图像 2 消失
问题:尽管在代码末尾调用了setImageResource(),但它实际上在开头设置了图像资源
最佳答案
你从来没有告诉image1.setImageResource(R.drawable.cat2);
等待2000毫秒然后执行,所以一点击image2就出现了。
解决方案:
2000ms后调用image1.setImageResource(R.drawable.cat2);
new Handler().postDelayed(() -> {
image1.setImageResource(R.drawable.cat2);
}, 2000);
这可能会有所帮助。
关于java - image.setImageResource()何时在函数内设置图像资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56360273/