android ImageView来自不同的线程,速度很慢

时间:2013-04-30 07:39:17

标签: android multithreading

我正在解码来自远程服务器的编码帧。现在我有一些不同的主题。一个线程用于接收,一个用于解码,另一个用于View。所有这些都是从活动类(主线程)创建的。现在我将父类的对象发送到Viewer类以访问ImageView。在那个ImageView中,我只写下面的代码片段。

m_ImageView.post(new Runnable() {       
    @Override
    public void run() {
        // TODO Auto-generated method stub
        m_ImageView.setImageBitmap(m_bImage);
        m_iDecompressedImage = null;
    }
}); 

这里m_ImageView是ImageView,m_bImage是Bitmap Image。但是存在性能问题。这里Viewer线程非常慢。我不知道另一种有效的方式来完成我的工作。请给我一些启示。

2 个答案:

答案 0 :(得分:0)

尝试使用Android Universal Image Loader的概念,它可以以各种方式帮助你......

答案 1 :(得分:0)

有一个后台线程从服务器接收图像并进行解码,请确保在必要时使用适当的采样速度和内存效率。

Bitmap存储在某个缓存中,可能是LruCache,使用Handler.Callback在成功下载图像或失败时处理邮件。在UI线程上使用Handler初始化Handler.Callback,并在解码完成并存储图像时从后台线程向其发送消息。

这只是方法的要点,当然,如果你不感兴趣,你可以为延迟加载图像插入一个开发的库。