2011-11-11 16 views
1

からRGB565ビットマップを表示する必要がより高速な方法私はこのように私のキャンバスに表示RGB565バイト配列があります。アンドロイド:バイト配列

Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); 
    ByteBuffer buf = ByteBuffer.wrap(data); // data is my array 
    bmp.copyPixelsFromBuffer(buf); 
    // then I display the bitmap on my SurfaceView 

を私は、この手順では、私の携帯電話上でかなり遅いことがわかります。それより速くすることはできますか?キャンバスにこのバイトのRGB565配列を表示するだけです。私の携帯電話はグラフィックアクセラレータを持っていないので、OpenGLはおそらく助けにならないでしょう。

+0

パフォーマンスが問題になるのはなぜですか?これは何度もやっていますか? – antlersoft

+0

ライブビデオを表示しています –

答えて

2

これは詳細な回答ではありませんが、ビットマップで深刻なパフォーマンスが必要な場合はNDKで調べます。私はこれとちょっとやってみた。

http://developer.android.com/sdk/ndk/overview.html

は、プラズマの例を見てください。基本的にはそれから始まり、私たちのソリューションを構築しました。

それ以外では、実行ごとに新しいビットマップを作成しないことをお勧めします。

+0

ありがとう!実際、私はそれぞれの実行時に新しいビットマップを作成しました。私がすぐに1つのビットマップのパフォーマンスを使用し始めたように、非常に多くのパフォーマンスが向上しました。私はまだあなたが提案したプラズマソリューションを見ています –

+0

プラズマサンプルからのアプローチでは、それはさらに高速です、ありがとう –