网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

AndroidBitmap的加载与缓存-创新互联

Android系统中图片一般用Bitmap对象表示,它支持png,jpg等常见格式。通常情况下图片的体积都比较大,单个应用允许使用的内存又是有限的,所以我们需要采取一些手段减少内存占用并提高加载速度。

创新互联公司是工信部颁发资质IDC服务器商,为用户提供优质的珉田数据中心服务

1、图片加载

SDK提供了BitmapFactory类供我们加载图片,常用的方法有这么几个:

  •  BitmapFactory.decodeFile :从文件加载。
  •  BitmapFactory.decodeByteArray :从字节数组加载。
  •  BitmapFactory.decodeStream :从输入流加载。
  •  BitmapFactory.decodeResource :从资源文件加载。

假设我们用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的加载与缓存-创新互联
新闻来源:http://bjjierui.cn/article/dpepgp.html

其他资讯