0

在我的 android 应用程序中,场景是这样的 -

我有几张图片存储在 SD 卡中。现在在我的应用程序中,我有一个图像视图,我必须像幻灯片放映一样不断更新这个图像视图。这必须通过从 SD 卡中一张一张地获取图像并将它们设置在同一个 ImageView 中来完成。ImageView 中图像变化的间隔也是固定的。所以我有一个游标来存储获取这些图像的信息。现在我想知道我应该用什么方法来逐个移动光标并从 SD 卡中获取图像并将它们设置在我的 ImageView 中。

我应该使用 Timer Task 和 Timer 还是应该使用 Handler 或其他东西?

请帮忙,因为这是我的应用程序的起点,我想从正确的方向开始。

4

1 回答 1

1

由于您要从 SD 卡中检索大量数据,因此最好使用线程来检索/解码位图。

在这种情况下,Timer 会很有用,因为它在自己的 Java 线程上运行预定的时间段。但是,您必须记住,您不能从非 UI 线程更新 UI 元素。因此,当位图完全加载时,您需要一个同步元素,以最终将解码的位图放入 ImageView。在这种情况下,您无论如何都需要使用 Handler 将消息队列发送到 UI 线程。

因此,我可能会推荐使用 Handler 和 AsyncTask 的组合。创建一个 AsyncTask 类,用于检索和解码doInBackground(). 更新ImageViewin onPostExecute()。使用 Handler 每第 N 毫秒(无论何时更新视图)创建和执行一个新的 AsyncTask。

这样做的一个优点是它将所有图像检索保留在一个类中。您可以打开、检索、关闭光标。这比保持长时间运行的游标打开更安全。

于 2012-08-23T14:19:43.713 回答