当前位置: 代码迷 >> Android >> Android如何有效缩小图片以节省资源
  详细解决方案

Android如何有效缩小图片以节省资源

热度:61   发布时间:2016-04-28 06:17:37.0
Android怎么有效缩小图片以节省资源?
     对用户上传的头像,我故意放了几个2M左右大小的图片,其实显示到app上的时候,其实也就60*60左右大小的地方,用模拟器运行的时候显示流量都是几兆几兆的,有时还会OOM。看了网上教程,用bitmapFactory.options 中的inSampleSize等一些缩放图片的方法,是没有OOM了,但是在加载图片的时候流量还是上兆的,感觉图片缩放以后大小并没有改变,就是图片还是上兆的。有没有什么方法可以真正有效缩放图片,比如用户上传的原始头像是1000*1000的1M的图片,缩放到100*100的时候就变成了10KB了?
------解决方案--------------------
截取啊。http://chroya.iteye.com/blog/710262
------解决方案--------------------
	/**
 * 保存缩略图
 * 
 * @param bitmap
 */
private void saveThumbnails(Bitmap bitmap) {
Bitmap smallBitmap = thumbnailWithImageWithoutScale(bitmap);
String filePath = new File(SharePre.getThumbnailsFilePath(this) + "/" + selectImgName).getPath();
try {
FileOutputStream fout = new FileOutputStream(filePath);
smallBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fout);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}


	/**
 * 获得缩略图
 * 
 * @param originalBitmap
 * @return
 */
private Bitmap thumbnailWithImageWithoutScale(Bitmap originalBitmap) {
Display display = getWindowManager().getDefaultDisplay();
int height = display.getHeight();
int SCALE;// 缩略图大小
switch (height) {
case 1080:
SCALE = 300;
break;
case 1920:
SCALE = 600;
break;
default:
SCALE = 150;
break;
}

// 得到缩略图
Bitmap bitmap = ThumbnailUtils.extractThumbnail(originalBitmap, SCALE, SCALE,  ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

return bitmap;

}


主要在于Bitmap的compress方法和ThumbnailUtils.extractThumbnail不知是否对你有帮助
  相关解决方案