2016-06-24 6 views
-2

私は自分のカスタムImageView(レイアウトにプログラムで追加されたもの)のインスタンスを40個持っています(ピクセル単位の表示サイズに従って)。 myCustomView.setImageBitmapを呼び出すか、onDrawをオーバーライドしてキャンバスにビットマップを描画する方が良いでしょうか? これらのビューはすべて、クリック、ドラッグ、またはドロップすることしかできません。他の操作は許可されません。Android ImageView setImageBitmapまたはキャンバスにビットマップを描画する

答えて

0

複雑なものを描画し、下の画像やテキストなどの複雑なビューを作成する場合や、画像内に円で囲む場合は、onDrawを使用する必要があります。 しかし、1つのイメージだけを表示したい場合は、setImageBitmapを使用する方が簡単です。 答えは:ソリューションはニーズに応じて異なり、複雑さが増します。

+0

ありがとう@ vanste25。ビットマップを描画するのがメモリ使用量に関してsetImageBitmapよりも安いかどうかは分かります。 setImageBitmap(UniversalImageLoaderを使用していても)は多くのOutOfMemoryErrorを導きます。したがって、描画ビットマップが「より軽い」操作であるかどうか疑問です。 – javaman

+0

これは無効化を呼び出す頻度によって異なります。あなたが何度もそれをやると、パフォーマンスが低下します。また、onDrawの実行中にメモリを割り当てないでください。 setImageBitmapはビットマップを表示するように最適化されているので、setImageBitmapを使うべきだと思います。それがその自然な振る舞いです。 – vanste25

+0

そしてsetImageBitmapはどうですか? OutOfMemoryErrorにもつながっていますか? – vanste25

関連する問題