有****标记的为关键处理
final BitmapFactory.Options options = new BitmapFactory.Options();
// **** 该值设为true那么将不返回实际的bitmap不给其分配内存空间而里面只包括一些解码边界信息即图片大小信息
options.inJustDecodeBounds = true;// inJustDecodeBounds设置为true,可以不把图片读到内存中,但依然可以计算出图片的大小
BitmapFactory.decodeFile(filePath, options);
// Calculate inSampleSize 根据高宽度和屏幕高宽度计算压缩程度
options.inSampleSize = calculateInSampleSize(options, w, h);
// *****Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;// 重新读入图片,注意这次要把options.inJustDecodeBounds
// 设为 false
Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);// BitmapFactory.decodeFile()按指定大小取得图片缩略图