美文网首页
Android UI适配总结之图片适配(1)

Android UI适配总结之图片适配(1)

作者: 天空蔚蓝依旧 | 来源:发表于2019-11-07 15:54 被阅读0次

由于Android的屏幕尺寸的碎片化,时至今日Android的UI适配依然是开发中必不可少的步骤。
UI适配的适配,是通过dp、权重,通配符等方式使View能按我们意愿的准确的显示在不同手机上。除了对view的尺寸适配,我们还要对图片适配,合适的把切图放在正确的位置,能有效的降低内存占用和图片变形。

本篇是对图片适配的探索

首先,准备一张200*200像素的图片(img.jpg)放在Android Studio (以下简称AS)的drawable文件目录下,
然后对比不同drawable在不同手机(dpi)下,图片的大小。

>>> xml
<ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img"
       />

>>>  java 打印当前手机中图片的大小
  private void printBitmapSize(ImageView imageView) {
        Drawable drawable = imageView.getDrawable();
        if (drawable != null) {
            BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
            Bitmap bitmap = bitmapDrawable.getBitmap();
            Log.i("sky", " width = " + bitmap.getWidth() + " height = " + bitmap.getHeight());
        } else {
            Log.i("sky", "Drawable is null !");
        }
    }

Android中图片默认类型是AEGB_8888,故width*height4=占用内存大小(B)
通过查看AS中的profiler查看内存占用,
MI 4 (MIUI10、1980*1080、xxhdpi、480dpi)当不加载图片时的初始内存为
23.6*

drawable 内存大小 图片尺寸
mdpi 55.6-23.6= 30m 3000 ->34.3
hdpi 35.6-23.6= 12m 2000 -> 15.25
xhdpi 29.2-23.6= 5.6 1500 -> 8.58
xxhdpi 21.1-23.6= -2.5 1000 -> 3.81
xxxhdpi 19-23.6= -4.6 750 -> 2.14

MZ 6p(Flyme7、1920*1080、 xxhdpi、480dpi)当不加载图片的初始内存为41.4

drawable 内存大小 图片尺寸
mdpi 116.5-41.4= 75.1 3000->34.3
hdpi 75.1-41.4= 33.7 2000->15.25
xhdpi 58.6-41.4= 17.2 1500->8.58
xxhdpi 50.4-41.4= 9.0 1000->3.81
xxxhdpi 47.1-41.4= 5.7 750->2.14

从上面可以看出本来应该放在xxhdpi中的图片,当放置低于xxhdpi的文件夹目录,会产生内存占用增大(图片显示尺寸增大);当放置高于xxhdpi的文件夹目录,会产生内存占用减小(图片显示尺寸减小);

PS:敲黑板,仔细看参数的同学一定发现了计算的内存占用和实际内存占用对不上,在小米4中甚至出现了加载图片内存反而变小的情况。。。。
原因呢?
我也不知道。有知道的同学请指教。
不过我们的重点不在值是否正确,而是放在不同dpi目录下对内存影响的趋势,对不!对比上面表格内的内存占用基本也符合下图的比例(2 3 4 6 8)。


image.png

补充下,(点9)图片,左上是拉伸,右下是内容显示区域

图片适配到这里已经结束了。
简单总结下:把正确的切图放在正确的dpi文件目录,能有效的解决开发中可能遇到的图片内存占用过大和显示尺寸不正确情况;

相关文章

  • Android UI适配总结之图片适配(1)

    由于Android的屏幕尺寸的碎片化,时至今日Android的UI适配依然是开发中必不可少的步骤。UI适配的适配,...

  • Android8.0 多语言适配实现(1)

    Android国际化适配包含内容: 1.图片国际化适配图片适配2.文字国际化适配文字适配原文转载自:https:/...

  • android:页面Ui适配方案整理(2)

    承接上文android:页面Ui适配方案整理这篇文章对当前主流的适配方法进行总结整理: 由上文可知适配需要解决的问...

  • 安卓适配

    ------刘海屏------屏幕适配 | Android 刘海屏适配总结Android刘海屏适配方案Androi...

  • Android-UI

    Android知识体系,笼统分为UI,Data,interact UI 1.屏幕适配郭霖微信公众号:屏幕适配 ad...

  • 安卓:日常开发屏幕适配总结

    Android 屏幕适配方案Android多分辨率适配框架Android 屏幕适配之dimens(上线项目中实际应...

  • Android UI适配总结之尺寸适配(2)

    很想和你们唠叨几句,聊聊入行后我下移的发际线是怎么做到的!奈何不善言谈,虽心有千言万语,竟只能对着屏幕叹一声下次再...

  • 面试题专栏集合

    android面试 一份用心整理的Android面试总结 Android 目前最稳定和高效的UI适配方案 2018...

  • 2018 android 文章汇总

    Android面试:一份用心整理的Android面试总结 Android 目前最稳定和高效的UI适配方案 2018...

  • Android:页面ui适配整理(3)

    语言的适配(local的适配) 应用中文本的适配 用到的涉及文字的图片需要替换 对整体UI进行适配修改(不同的语言...

网友评论

      本文标题:Android UI适配总结之图片适配(1)

      本文链接:https://www.haomeiwen.com/subject/kenyvctx.html