为了账号安全,请及时绑定邮箱和手机立即绑定
  • 使用InBitmap就可以让三张图片占用一个内存,前提是后面两个图片占用内存小于第一个

    查看全部
    0 采集 收起 来源:图片加载优化

    2019-03-06

  • 从解码率方面如何对图片进行优化:RGB_565一个像素占两个字节,ARGB_8888一个像素占4个字节,代码实现:options.inPreferredConfig设置

    查看全部
    0 采集 收起 来源:图片加载优化

    2019-03-06

  • 优化方式一

    查看全部
    0 采集 收起 来源:图片加载优化

    2019-03-06

  • png没有压缩,jpeg压缩,webp是理想选择

    查看全部
    0 采集 收起 来源:图片OOM

    2019-03-06

  • 如截图所示

    查看全部
    0 采集 收起 来源:图片OOM

    2019-03-06

  • 与手机内存没有关系,超出系统给应用的最大限制就会溢出

    查看全部
    0 采集 收起 来源:图片OOM

    2019-03-06

  • 见截图所示

    查看全部
    0 采集 收起 来源:课程介绍

    2019-03-06

  • 54564554


    https://img1.sycdn.imooc.com//5c665d190001c0b619201080.jpg

    https://img1.sycdn.imooc.com//5c665d1a0001a71019201080.jpg


    查看全部
  • https://img1.sycdn.imooc.com//5c665b8c0001d30405040461.jpg32222222222

    查看全部
  • https://img1.sycdn.imooc.com//5c665a9f000137f107520463.jpg撒旦撒旦撒旦撒旦

    查看全部
  • 超大图片

    1.使用BitmapRegionDecoder.decodeRegion()来实现

    public Bitmap decodeRegion(Rect rect, BitmapFactory.Options options);

    2.通常的做法是

    (1)定义一个View来显示这张图,在onMeasure()中创建一个和View一样大小的Rect,用来作为decodeRegion()的参数

    int width = getMeasuredWidth();
    int height = getMeasuredHeight();//View宽和高
    
    int imgWidth = mImgWidth;
    int imgHeight = mImgHeight; //图片宽和高, 通过BitmapFactory.decodeFile(..., options)可以拿到,当然options.inJustDecodeBounds = true
    
    //获取rect的左右上下边界, 默认是显示图片的中心区域
    mRect.left = imgWidth/2 - width/2;
    mRect.top = imgHeight/2 - height/2;
    mRect.right = imgWidth/2 + width/2;
    mRect.bottom = imgHeight/2 + height/2;

    (2)在自定义View的onDraw()方法中将decodeRegion()得到的bitmap进行绘制到View上

    (3)这个View还需要实现OnGestureListener接口,实现自己的move()函数,其实主要是改变这个Rect。然后调用invalidate()从decodeRegion(rect, ...)中拿到新的bitmap(可能只是一个小区域),再进行draw(bitmap, ...);

    查看全部
  • 1. mipmap

    Android API17引入的一种提高bitmap渲染速度和质量的技术;如果mipmap目录下有图片,Android默认会调用setHasMipMap()开启。

    一般情况下,启动图标会放在mipmap目录下。

    2. Android图片匹配规则

    假如有个设置是480dpi,查找对应的图片文件的顺序如下,直到找到为止

    xxhdpi——>xxxhdpi——>nodpi(不会缩放)——>xhdpi——>hdpi

    查看全部
  • 图片OOM问题

    OOM是指Android系统允许进程运行时所使用的内存,和手机本身系统没有关系。

    1. 产生

    (1)一个页面一次加载过多图片。虽然每个图片的bitmap占用内存较小,但是如果图片过多也会oom

    (2)加载大图片没有进行压缩

    (3)类似ListView这种先后使用bitmap,但是先前的没有进行缓存。

    2.解决

    (1)尺寸压缩:通过增大inSampleSize来压缩

    BitmapFactory.Options.inSampleSize

    (2)质量压缩:减少图片一个像素所占用的内存大小

    RGB_565一个像素点占用2个byte,ARGB_8888占用4个byte

    Bitmap.Config.RGB_565

    通常的例子如图所示

    (3)内存重用:通常使用BitmapFactory.Options.inBitmap

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inBitmap = mBitmap; //重用了mBitmap的内存,注意当前decode出来的bitmap内存大小不能超过mBitmap
    Bitmap bitmap = BitmapFactory.decodeFile(..., options);
    //bitmap是新decode出来的。


    查看全部
    1 采集 收起 来源:图片加载优化

    2019-01-06

  • 见截图所示

    查看全部
    0 采集 收起 来源:图片OOM

    2018-12-28

  • 如截图所示

    查看全部
    0 采集 收起 来源:图片OOM

    2018-12-28

举报

0/150
提交
取消
课程须知
学习本门课程需要大家有一定Android UI开发基础,能够在android中加载处理图片资源。
老师告诉你能学到什么?
1、图片优化的重要性。2、图片优化有哪几种方式?3、解决面试中遇到的图片优化相关问题。

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!