例如,setImageResource与setImageDrawable
背景也一样?
那么什么是首选呢?

最佳答案

根据documentationsetImageResource在ui线程上执行位图读取和解码,这可能导致延迟打嗝。所以如果你问在什么情况下setImageResourcesetImageDrawable更合适,你的问题会更好。
我的猜测是setImageResource用于延迟加载图像,而setImageDrawable用于在视图启动期间通过drawable加载图像。哪一个最适合你可能取决于你是否有更严重的记忆限制;以我的经验,几乎不需要。
并回答为什么您的代码不能工作;这是因为您不能从resourceid 0,this throws an exception as it can't find the resource中执行setImageResource。由于getDrawable()是延迟加载,it checks if the resource is 0在创建drawable之前,因此不会抛出异常。
你可以把它重构成setImageResource

07-24 16:38