【问题标题】:Ways of loading bitmap/drawable to view async in android在android中加载位图/可绘制以查看异步的方法
【发布时间】:2011-09-19 09:45:35
【问题描述】:

我的活动必须做很多事情才能被看到。在加载视图的过程中,我必须加载消耗一些时间的位图/可绘制对象,并防止在该时间可以完成的其他操作。所以我决定把它移到另一个线程。我使用过异步任务,但这不是加载东西的可靠方式。在某些情况下,任务会在我的视图显示后 1-2 秒开始!是否有另一种加载位图/drawable 的方法不会消耗太多时间并允许将其分配给 ImageView?

【问题讨论】:

    标签: android multithreading bitmap loading drawable


    【解决方案1】:

    在执行任务之前,您可能仍在阻塞 UI 线程。使用记录器来验证您的任务何时被执行。

    如果任务确实占用了大量时间来执行,那么您正在加载的位图可能太大,在这种情况下,您应该查看正在加载的图像的下采样inSampleSize 选项与BitmapFactory

    【讨论】:

      【解决方案2】:

      AsyncTask 从可能已经完全使用的线程池中运行任务,因此它可能必须将任务保留在队列中,直到线程释放以运行新任务。虽然我怀疑这是问题的原因。

      您或许应该考虑在要显示的实际视图之前显示进度指示器,以确保所有任务在用户看到它们之前完成。

      编辑

      你也可以使用 task.get();在运行所有其他任务以等待位图加载器完成之后再显示任何内容...但请尝试保持 UI 响应!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-07
        • 1970-01-01
        • 2013-06-06
        • 2012-04-07
        • 1970-01-01
        • 2013-07-18
        • 1970-01-01
        相关资源
        最近更新 更多