我正试图完成一些非常简单的事情。首先,加载我的布局(main.xml)。然后等待1秒钟,修改图像,等待1秒钟并将其修改为第三张图像。 (当然,我的最终目标更复杂,但我甚至无法完成这项工作)。如何在java中以我想要的方式获得等待/睡眠状态?
基本上,我在应用程序加载时出现黑屏。它保持这种状态直到所有等待结束,然后显示最终图像。这里是我的代码:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageCard[0] = (ImageView)findViewById(R.id.imageView11);
Thread.sleep(1000);
ImageCard[0].setImageDrawable(getResources().getDrawable(R.drawable.secondimage));
Thread.sleep(1000);
ImageCard[0].setImageDrawable(getResources().getDrawable(R.drawable.thirdimage));
ImageCard [0]是我想改变的图像。它加载在main.xml中,并且如果我删除其余代码,则显示正常。
如果我将睡眠时间更改为5000,则需要10秒才能最终离开黑屏并显示第三张图像。这就是我知道它不只是加载缓慢,但它实际上是在等待。
这就像它没有按顺序运行。我不是java专家,所以我假设我正在做一些愚蠢的事情......
感谢您的帮助!
您的标记指出“多线程”,但您的多线程代码显示使用后台线程的位置在哪里?你读过关于使用线程的教程吗? –
也许有一个绘画事件等着你放开你正在睡觉的UI线程。 –
你应该真的重新考虑你的方法。将主UI线程搁置1秒钟,以便您可以绘制新图片,这会导致设备在此期间无响应。用户将无法做任何事情(除了留下你的应用程序,他们可能会这样做,因为他们会认为你的应用程序“冻结”了他们的设备) – FoamyGuy