3 回答

TA贡献1799条经验 获得超8个赞
我认为这会对您有所帮助:
所以像这样在 onClickListener 中使用:
image1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image1.setVisibility(View.GONE);
//Animation...
image2.setVisibility(View.VISIBLE);
}
});

TA贡献1829条经验 获得超6个赞
你永远不会告诉image1.setImageResource(R.drawable.cat2);等待 2000 毫秒然后执行,所以 image2 一点击它就出现了。
解决方案:image1.setImageResource(R.drawable.cat2); 2000ms后 调用
new Handler().postDelayed(() -> {
image1.setImageResource(R.drawable.cat2);
}, 2000);
这可能会有所帮助。

TA贡献1848条经验 获得超10个赞
动画在您的代码中是异步的——它不会阻塞/等待,而是启动动画(或者更确切地说,将要启动的动画排队),然后立即执行设置图像的下一行。如果您想在动画完成后更新您的图像,您可以使用withEndAction并提供回调。
image1.animate()
.alpha(0f)
.setDuration(2000)
.withEndAction(new Runnable() {
@Override
public void run() {
image1.setImageResource(R.drawable.cat2);
}
})
.start();
添加回答
举报