我在android中有一个视图,我需要在按下特定控件时依次突出显示和取消突出显示按钮。这是一个可用性功能 - 当每个按钮突出显示时,它会大声朗读给用户。我使用AlphaAnimation类来完成突出显示。但是,现在无论我放入多少个无效调用或回调线程,实际上只有最后一个动画呈现给用户。其他的仍被调用但被最后一个动画覆盖,因此只显示了一个。我也试过简单地设置按钮的不透明度/ alpha属性,但所有这些修改最终都被批量处理并一次性执行。我需要这些动画按顺序发生。我还没有找到一种在控制流返回之前更新主视图的好方法(即在它调用的方法返回之前多次更新)。有没有人有任何想法?
答案 0 :(得分:2)
对于遇到此问题的所有其他人,我终于找到了解决方案。
文件: http://developer.android.com/reference/android/os/AsyncTask.html http://www.anddev.org/tut_updating_ui_from_a_thread-t11125.html
我的解决方案:创建一个AsyncTask,它接收一组按钮。在其doInBackground方法中,它突出显示/变暗,然后在按钮突出显示方案的每次迭代期间将受影响按钮的更新推送到onProgressUpdate方法。 onProgressUpdate方法在传入的所有按钮上调用invalidate()。然后为了便于访问突出显示功能,我创建了一个静态突出显示(按钮...)方法,该方法创建AsyncTask的新实例并在其上调用execute。 / p>