MrJ*_*Jre 10
根据文档 setImageResource在UI线程上进行Bitmap读取和解码,这可能会导致延迟打嗝.所以如果你问setImageResource上面哪种情况是更好的选择,你的问题会更好setImageDrawable.
我的猜测setImageResource是用于延迟加载图像,并且setImageDrawable在视图启动期间已经通过Drawable加载图像时使用.哪一个最适合你可能取决于你是否有更严重的记忆限制; 根据我的经验,setImageResource几乎不需要.
并回答为什么你的代码不起作用; 这是因为您无法getDrawable()从resourceId 0 执行此操作,因为无法找到资源而抛出异常.由于setImageResource是延迟加载,它在创建Drawable之前检查资源是否为0,因此不会抛出任何异常.你可以将它重构为一个if(checked) setImageDrawable(..) else setImageDrawable(null);
| 归档时间: |
|
| 查看次数: |
2536 次 |
| 最近记录: |