/**
* 将图片文件原比例缩略,并使其不超过最大宽、高
* @param path : 图片文件
* @param requestW : 缩略后最大宽度
* @param requestH : 缩略后最大高度
* @return 缩略后图片对象
*/
public static Bitmap getThumbnailByReq(String path,int requestW, int requestH){
BitmapFactory.Options options = new Options();
// 仅解析源图大小信息,所以仅将源图边界信息载入内存,而非完整源图,从而节省内存
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
int outW = options.outWidth;// 源图宽度
int outH = options.outHeight;// 源图高度
// 设定缩略倍数
if(outW > requestW || outH > requestH){
int radioW = Math.round((float)outW/requestW);
int radioH = Math.round((float)outH/requestH);
options.inSampleSize = radioW > radioH ? radioW : radioH;
}else{
options.inSampleSize = 1;
}
// 需解析出正确图片对象,所以将缩略后的图片完整加入内存
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
return bitmap;
}