【Android开发】setImageResource()和setImageBitmap()之间的区别
####学习笔记 仅供参考####
- setImageResource() 的参数是resId,必须是drawable目录下的资源,
是从资源drawable中获取资源ID。此方法会根据设备分辨率进行图片大小缩放适配。 - setImageBitmap()的参数是Bitmap,setImageBitmap将Bitmap对象封装成Drawable对象,然后调用setImageDrawable来设置图片,图片大小需要手动调整。因此代码里面如果需要频繁调用这个方法的话最好自己封装个固定的Drawable对象,直接调用setImageDrawable,这样可以减少Drawable对象。因为每次调用setImageBitmap方法都会对Bitmap对象new出一个Drawable。
setImageBitmap实际还是调用的setImageDrawable,但是强制setImageDrawble执行完整的setImageDrawable而不是做对象引用比较。 - setImageDrawable()的参数是Drawable,也是可以接受不同来源的图片,方法中所做的事情就是更新ImageView的图片。
上面两个方法实际上最后调用的都是setImageDrawable(setImageResource没有直接调用,不过更新的方法与setImageDrawable一样)。