Android系统中图片一般用Bitmap对象表示,它支持png,jpg等常见格式。通常情况下图片的体积都比较大,单个应用允许使用的内存又是有限的,所以我们需要采取一些手段减少内存占用并提高加载速度。
创新互联公司是工信部颁发资质IDC服务器商,为用户提供优质的珉田数据中心服务1、图片加载
SDK提供了BitmapFactory类供我们加载图片,常用的方法有这么几个:
假设我们用ImageView显示图片,通常它的尺寸要比图片的尺寸小很多,那么把图片整个加载进内存显然是没有必要的。在图形学上有个名词叫“下采样”,作用就是降低图像的分辨率,使其符合显示区域的大小。通过BitmapFactory.Options类,我们也可以实现同样的功能。这里主要用到了它的 inSampleSize 参数,如果它的值是1,那么采样后的图片跟原图一致,如果是2,那么采样后的图片长和宽都是原来的一半,占用的内存也就是原来的四分之一。
public static Bitmap decodeSampleBitmapFromBytes(byte[] data) { final BitmapFactory.Options options = new BitmapFactory.Options(); // inJustDecodeBounds为true时仅解析图片原始信息,并不会真正加载图片。 options.inJustDecodeBounds = true; BitmapFactory.decodeByteArray(data, 0, data.length, options); // 此时图片的宽高可以通过options.outWidth和options.outHeight获取到,我们 // 可以根据自己的需求计算出采样比。 options.inSampleSize = 1; // inJustDecodeBounds设置为fales,加载图片到内存中。 options.inJustDecodeBounds = false; return BitmapFactory.decodeResource(res, resId, options); }
标题名称:AndroidBitmap的加载与缓存-创新互联
文章转载:/article18/dpepgp.html
成都网站建设公司_创新互联,为您提供手机网站建设、响应式网站、域名注册、外贸建站、建站公司、服务器托管
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联