一般我们使用setImageDrawable是使用资源文件;而setImageBitmap是使用bitmap图片,这张图片可能是你资源文件转换,或者本地相册读取转换等等;BitmapFactory一般是在创建一个Bitmap,它的资源是来源于网络下载的流文件。一张Drawable的图片占用资源是远小于Bitmap的,所以很多容易导致OOM现象的应用会使用Drawable来处理。另外,Drawable和Bitmap之间也是能互相转换的。