0

現在、リモート サーバーからのエンコードされたフレームをデコードしています。今、私はいくつかの異なるスレッドを持っています。1 つのスレッドは受信用、1 つはデコード用、もう 1 つは表示用です。これらはすべてアクティビティ クラス (メイン スレッド) から作成されます。ImageView にアクセスするために、親クラスのオブジェクトを Viewer クラスに送信します。その 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 はビットマップ イメージです。しかし、パフォーマンスの問題があります。ここで Viewer スレッドは非常に遅いです。仕事をするための他の効率的な方法を知りません。光をください。

4

2 に答える 2

0

サーバーから画像を受信して​​デコードするバックグラウンド スレッドを 1 つ用意し、必要に応じて、速度とメモリ効率のために適切なサンプリングを使用してください。

イメージのダウンロードが成功または失敗したときにメッセージを処理する をBitmap使用LruCacheします。それを使用して UI スレッドで をHandler.Callback初期化し、デコードが完了して画像が保存されたら、バックグラウンド スレッドからメッセージを送信します。HandlerHandler.Callback

もちろん、これはメソッドの要点にすぎません。興味がない場合は、開発されたライブラリをプラグインして、画像を遅延読み込みすることができます。

于 2013-04-30T08:57:06.370 に答える