Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

setImageResource Vs setDrawable

When it comes android development and performance, if you have imageview then which one would be faster or better (is there a difference anyways!): setImageResource and setDrawable Iknow one takes ID and the other one takes drawable. But I will be getting the drwable from ID anyways. Which one do you think is better?

Or should I avoid using imageview alltogether and use load/draw bitmap? too many selections is confusing Thanks for the comments

like image 720
Snake Avatar asked Mar 19 '12 17:03

Snake


3 Answers

They are different. From Android documents.

setImageResource: This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup.

If that's a concern, consider using setImageDrawable(android.graphics.drawable.Drawable) or setImageBitmap(android.graphics.Bitmap) and BitmapFactory instead.

like image 114
Seunghoon Avatar answered Oct 13 '22 21:10

Seunghoon


Those exists as convenience methods so you don't have to always work around to always getting a drawable, or always having to pass in a resource ID. Various situations call for different approaches.

All in all, there's no difference. Use what works for your situation.

like image 2
Phix Avatar answered Oct 13 '22 23:10

Phix


I think setImageDrawable is better suited for memory intensive operations - like scrolling a RecyclerView, getting bitmap from memcache. But for something simpler, setImageResource is the better API nowadays.

like image 2
IgorGanapolsky Avatar answered Oct 13 '22 21:10

IgorGanapolsky