在加载图片时,由于有些图片占的内存比较大,会导致OOM。所以这时候就需要对需要加载的图片进行采样。
<span style="font-size:18px;">/**
* 对图片进行二次采样
* @param imgpath 图片的地址
* @param maxwidth 采样后的图片最高宽度
* @param maxheight </span><span style="font-size: 18px;"><span style="font-family:SimSun;">采样后的图片最高高度</span></span><span style="font-size:18px;">
* @return
*/
public static Bitmap getBitmap(String imgpath,int maxwidth,int maxheight){
int width = 0;
int height = 0;
int sampleSize = 1; //默认缩放为1
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true; //仅仅解码边缘区域
BitmapFactory.decodeFile(imgpath, options);
//得到宽与高
height = options.outHeight;
width = options.outWidth;
while (((height / sampleSize)>maxheight)
||((width / sampleSize)>maxwidth)) {
sampleSize *= 2;
}
options.inJustDecodeBounds = false; //不是只加载图片的边缘
options.inSampleSize = sampleSize; //设置的缩放尺寸
return BitmapFactory.decodeFile(imgpath, options);
}</span>