故事要从一场面试说起,当问到如何加载一个大图而不会发生OOM,这里有两种途径,一、降采样大图;二、局部加载大图 由于android内存的限制,andoid系统给每个应用分配的内存是有限的,当直接加载一个占用内存加大的图片时就会发生OOM. 一、降采样大图 主要是利用BitmapFactory.Options对象的inSampleSize参数,根据空间尺寸与大图尺寸的比率来缩小大图,从而显示大图的缩略图。 二、局部加载大图 主要利用BitmapRegionDecoder类的decodeRegion方法来加载局部区域,通过重写View的onTouchEvent方法监听手指滑动事件,更新显示区域。