2016-06-02 16 views
1

グリッドビューを持っていてグリッドのサムネイルの背景をプログラム的にBLACKに設定した場合、白い場合よりも多くのCPUを消費するでしょうか?黒い四角のグリッドビューは、白い四角のグリッドビューよりもパフォーマンスに影響を及ぼしますか?

holder.ivImageThumbnail.setImageDrawable(null); 
holder.ivImageThumbnail.setBackgroundColor(Color.WHITE); 
+1

私はCPU上でパフォーマンスの変化は見られません。白は黒よりも大量のデータで構成されているため、黒の上に白を使用すると、メモリの使用量がわずかに変化することがあります。私が選択しなければならなかったら、私はどのような背景も設定するのが最速ではないと思います。むしろ、見えない背景の色よりもビットマップの最適化について心配しています。 – Neil

+1

白いピクセルには黒より多くのデータが含まれていますか?これの背後にある理由は何ですか? –

+1

白は255,255,255のRGB値を持ち、黒は0,0,0で、画像のビット数にも依存します。 JPEG圧縮を使用して500x500の白い画像を撮って、それをJPEG圧縮された黒の500x500の画像と比較すると、20Kib以上の違いが表示されます。これをPNGに変更すると、PNGが圧縮に加えるアルファ値のために範囲がさらに変わります。詳細はhttp://paulbourke.net/dataformats/bitmaps/ – Neil

答えて

1

CPUのパフォーマンスの変化はありません。アンドロイドでは、あなたが使用しているGridViewのため、背景色のメモリ使用量に気付かないでしょう。 GridViewではビューがリサイクルされるため、古いビューを再利用する前に子ビューに設定できる項目がx個だけになるので、背景の色を気にする必要はありません。

白は黒よりも大量のデータで構成されているため、黒よりも白を使用してメモリ使用量がわずかに変化することがあります。白は[255、255、255]のRGB値を持ち、黒は[0、0、0]ですが、サイズも画像のビット数に依存します。

JPEG圧縮で500x500の白い画像を撮って、それをJPEG圧縮された黒色の500x500の画像と比較すると、20Kib以上の違いが表示されます。これをPNGに変更すると、PNGが圧縮に加えるアルファ値のために範囲がさらに変わります。あなたがViewCanvasに描画しているので、これは問題ではありません。

関連する問題