android缩放大图片加载
2014-01-05 13:38
323 查看
android中对每个app使用的内存都有严格的限制,一般默认都是16MB,而此时我们如果需要加载一张像素超大的图片的大(如18MB)的图片的话那肯定会oom了(像素大的图片现在是很多了)。。。但是当我们用android系统自带的图片浏览器打开的时候不会出现这样的oom,纳尼这android系统自带的图片浏览器难不成不是用咋们java搞出来的吗?其实我们只需要一下几个步骤就可以搞定这种大图片在我们android应用中放心加载大图片了...
A: BitmapFactory.Options的引入
我们通过 BitmapFactory.Options来把大的图片进行无质量损坏的压缩
BitmapFactory.Options opts = new Options();
//这句话不去解析图片,而只是获取图片的头部信息(包含了图片所有的信息例如宽、高等)
opts.inJustDecodeBounds = true;
BitmapFactoty.decodeFile("/sdcard/a.jpb",opts);
int imgWidth = opts.outWidth;
int imgHeight = opts.outHeight;
B: 进行缩放即可
//这个时候,我们需要来计算一个缩放比,这里以320*480的手机宽、高为对比值,实际开发中需要根据具体的业务逻辑来判断到底需要什么样的对比值
int scaleX = imgWidth/windowWidth; //水平方向的缩放比
int scaleY - imgHeight/windowHeitht; //垂直方向的缩放比
int scale = 1 //缩放比
PS: 缩放比要选择较大的值,如果你选择小缩放比的话那较大的那部分没有切完吧骚年
if(scaleX > xxaleY && scaleY > 1){
scale = scaleX;
}else if(scale Y > scaleX && scaleX > 1){
scale = scaleY;
}
//接下来解析图片
opts.inJustDecodeBounds = false;
//采样率
opts.inSampleSize = scale;
BitmapFactoty.decodeFile("/sdcard/a.jpb",opts);
搞完手工即可
PS说明: 如果我们上面得到的scale = 4,则新解析得到的图片的宽、高都是原图片的宽、高的1/4,新解析得到的图片是原来图片的1/16
A: BitmapFactory.Options的引入
我们通过 BitmapFactory.Options来把大的图片进行无质量损坏的压缩
BitmapFactory.Options opts = new Options();
//这句话不去解析图片,而只是获取图片的头部信息(包含了图片所有的信息例如宽、高等)
opts.inJustDecodeBounds = true;
BitmapFactoty.decodeFile("/sdcard/a.jpb",opts);
int imgWidth = opts.outWidth;
int imgHeight = opts.outHeight;
B: 进行缩放即可
//这个时候,我们需要来计算一个缩放比,这里以320*480的手机宽、高为对比值,实际开发中需要根据具体的业务逻辑来判断到底需要什么样的对比值
int scaleX = imgWidth/windowWidth; //水平方向的缩放比
int scaleY - imgHeight/windowHeitht; //垂直方向的缩放比
int scale = 1 //缩放比
PS: 缩放比要选择较大的值,如果你选择小缩放比的话那较大的那部分没有切完吧骚年
if(scaleX > xxaleY && scaleY > 1){
scale = scaleX;
}else if(scale Y > scaleX && scaleX > 1){
scale = scaleY;
}
//接下来解析图片
opts.inJustDecodeBounds = false;
//采样率
opts.inSampleSize = scale;
BitmapFactoty.decodeFile("/sdcard/a.jpb",opts);
搞完手工即可
PS说明: 如果我们上面得到的scale = 4,则新解析得到的图片的宽、高都是原图片的宽、高的1/4,新解析得到的图片是原来图片的1/16
相关文章推荐
- Android--自定义View加载网络图片,实现缩放,圆形剪裁
- Android中当加载大图片时进行缩放
- android95 缩放加载大图片
- Android缩放图片加载大图片
- android 利用ImagevView加载本地图片并实现等比缩放
- Android利用缩放加载大图片避免内存溢出
- 19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写
- Android 详解实现TextView加载带图片标签的Html并按比例缩放
- 19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写
- Android Glide 加载图片时会缩放一下
- android 加载大图片时计算图片的缩放比例
- Android 使用Picasso加载网络图片等比例缩放
- Android 使用Picasso加载网络图片等比例缩放
- Android中加载大图片OOM(图片缩放)
- Android 使用Picasso加载网络图片等比例缩放
- Android实现网络加载图片点击大图后浏览可缩放
- Android ZoomImageView手势缩放拖动图片,并将Glide加载的网络图片保存到本地。
- android中 利用缩放加载本地大图片
- Android 使用Picasso加载网络图片等比例缩放的实现方法
- android 加载图片到内存(缩放)