当前位置: 首页 > news >正文

网站开发属于软件开发行业吗西安百度推广运营公司

网站开发属于软件开发行业吗,西安百度推广运营公司,上海seo网络推广公司,集团门户网站建设费用转自#xff1a;http://my.oschina.net/rengwuxian/blog/182885 高效使用Bitmaps有什么好处#xff1f; 我 们常常提到的“Android程序优化”#xff0c;通常指的是性能和内存的优化#xff0c;即#xff1a;更快的响应速度#xff0c;更低的内存占用。Android程序的性能…转自http://my.oschina.net/rengwuxian/blog/182885 高效使用Bitmaps有什么好处 我 们常常提到的“Android程序优化”通常指的是性能和内存的优化即更快的响应速度更低的内存占用。Android程序的性能和内存问题大部 分都和图片紧密相关而图片的加载在很多情况下很用到Bitmap位图这个类。而由于Bitmap自身的特性将每个像素的属性全部保存在内存中 导致稍有不慎就会创建出一个占用内存非常大的Bitmap对象从而导致加载过慢还会有内存溢出的风险。所以Android程序要做优 化Bitmap的优化是必不可少的一步。 需要对Bitmap进行优化的情形 首先请看一行代码 1mImageView.setImageResource(R.drawable.my_image); 这是一行从资源文件中加载图片到ImageView的代码。通常这段代码没什么问 题但有些情况下你需要对这段代码进行优化。例如当图片的尺寸远远大于ImageView的尺寸时或者当你要在一个ListView或 GridView中批量加载一些大小未知的图片时。实际上以上这行代码会在运行时使用BitmapFactory.decodeStream()方法将 资源图片生成一个Bitmap然后由这个Bitmap生成一个Drawable最后再将这个Drawable设置到ImageView。由于在过程中 生成了Bitmap因此如果你使用的图片过大就会导致性能和内存占用的问题。另外需要优化的情形不止这一种这里就不再列举。 下面分步说明使用代码来减小Bitmap的尺寸从而达到减小内存占用的方法 1. 获取原图片尺寸 通常我们使用BitmapFactory.decodeResource()方法来从资源文件中读取一张 图片并生成一个Bitmap。但如果使用一个BitmapFactory.Options对象并把该对象的inJustDecodeBounds属性设 置为truedecodeResource()方法就不会生成Bitmap对象而仅仅是读取该图片的尺寸和类型信息     1BitmapFactory.Options options new BitmapFactory.Options(); 2options.inJustDecodeBounds true; 3BitmapFactory.decodeResource(getResources(), R.id.myimage, options); 4int imageHeight options.outHeight; 5int imageWidth options.outWidth; 6String imageType options.outMimeType; 2. 根据原图尺寸和目标区域的尺寸计算出合适的Bitmap尺寸 BitmapFactory.Options类有一个参数 inSampleSize该参数为int型他的值指示了在解析图片为Bitmap时在长宽两个方向上像素缩小的倍数。inSampleSize的默认 值和最小值为1当小于1时解码器将该值当做1来处理且在大于1时该值只能为2的幂当不为2的幂时解码器会取与该值最接近的2的幂。例如 当inSampleSize为2时一个2000*1000的图片将被缩小为1000*500相应地它的像素数和内存占用都被缩小为了原来的 1/4 01public static int calculateInSampleSize( 02            BitmapFactory.Options options, int reqWidth, int reqHeight) { 03    // 原始图片的宽高 04    final int height options.outHeight; 05    final int width options.outWidth; 06    int inSampleSize 1; 07  08    if (height reqHeight || width reqWidth) { 09  10        final int halfHeight height / 2; 11        final int halfWidth width / 2; 12  13        // 在保证解析出的bitmap宽高分别大于目标尺寸宽高的前提下取可能的inSampleSize的最大值 14        while ((halfHeight / inSampleSize) reqHeight 15                 (halfWidth / inSampleSize) reqWidth) { 16            inSampleSize * 2; 17        } 18    } 19  20    return inSampleSize; 21} 3. 根据计算出的inSampleSize生成Bitmap  01public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, 02        int reqWidth, int reqHeight) { 03  04    // 首先设置 inJustDecodeBoundstrue 来获取图片尺寸 05    final BitmapFactory.Options options new BitmapFactory.Options(); 06    options.inJustDecodeBounds true; 07    BitmapFactory.decodeResource(res, resId, options); 08  09    // 计算 inSampleSize 的值 10    options.inSampleSize calculateInSampleSize(options, reqWidth, reqHeight); 11  12    // 根据计算出的 inSampleSize 来解码图片生成Bitmap 13    options.inJustDecodeBounds false; 14    return BitmapFactory.decodeResource(res, resId, options); 15} 这里有一点要注意就是要在第二遍decode之前把inJustDecodeBounds设置回false。 4. 调用以上的decodeSampledBitmapFromResource方法使用自定尺寸的Bitmap。 如果你要将一张大图设置为一个100*100的缩略图执行以下代码 1mImageView.setImageBitmap(decodeSampledBitmapFromResource(getResources(), R.id.myimage, 100, 100)); 到此使用decodeResource()方法将一个大图解析为小尺寸bitmap的应用就完成了。同理还可以使用decodeStream()decodeFile()等方法做相同的事原理是一样的。 延伸一个Bitmap到底占用多大内存系统给每个应用程序分配多大内存 · Bitmap占用的内存为像素总数 * 每个像素占用的内存。在Android中Bitmap有四种像素类型ARGB_8888、ARGB_4444、ARGB_565、ALPHA_8他 们每个像素占用的字节数分别为4、2、2、1。因此一个2000*1000的ARGB_8888类型的Bitmap占用的内存为 2000*1000*48000000B8MB。 · Android根据设备屏幕尺寸和dpi的不同给系统分配的单应用程序内存大小也不同具体如下表表格取自Android 4.4 Compatibility Definition Document (CDD)                                                                                                       屏幕尺寸 DPI 应用内存 small / normal / large ldpi / mdpi 16MB small / normal / large tvdpi / hdpi 32MB small / normal / large xhdpi 64MB small / normal / large 400dpi 96MB small / normal / large xxhdpi 128MB xlarge mdpi 32MB xlarge tvdpi / hdpi 64MB xlarge xhdpi 128MB xlarge 400dpi 192MB xlarge xxhdpi 256MB
http://www.pierceye.com/news/169490/

相关文章:

  • 百度网站排名软件怎么做网站竞价
  • 设计素材网站校园二手市场网站建设
  • 电子产品网站设计asp做微网站
  • 网站内部优化建设温州 网站制作
  • 怎么自己做网站地图网站涉及敏感视频等该怎么做
  • 个人网站建设主要功能南京自助建站网站
  • 替别人做设计的网站商业空间
  • 做网站很赚钱吗郴州网站定制
  • 霞浦建站公司建设通是个什么网站
  • 帮企业建网站网络广告有哪些
  • 网站的访问量怎么查知名电子商务网站
  • 鸣蝉小程序制作平台南通seo排名公司
  • 建设网站都要学些什么网站开发承包合同
  • 网站搭建好了怎么上到服务器好看wordpress主题
  • 免费自己制作网站教程网站文字格式
  • 模板建站教程网站建设公司特色
  • 广州网站设计制作江门住房与城乡建设局官方网站
  • 电子商城网站建设参考文献新手建立企业网站流程
  • 站长工具使用wordpress搜索框制作教程
  • 上海翼成信息科技有限公司做的什么网站怎么办一个网站
  • 上海网站建设的英文wordpress login 图标
  • 雅安市网站建设搭建网站工具
  • 网站如何做301重定向南宁一站网 给网站做营销
  • 网站 使用的字体女生电子商务专业适合做什么
  • 电商网站首页模板连云港 网站 建设
  • 自助建站广告发布企业年检网上申报流程
  • 河北平台网站建设价位外包网站有哪些
  • 做网站客户需要提供的资料梧州网站建设推荐
  • 网站商城建设实训心得网络推广有用吗
  • 考试网站建设房价2024年暴跌