美文网首页性能优化
性能优化 - 布局适配与图片适配

性能优化 - 布局适配与图片适配

作者: 世道无情 | 来源:发表于2019-02-13 06:56 被阅读35次

    1. 布局适配


    布局适配,其实就是布局别名问题:

    平板 layout-sw600dp (600dp以上):平板情况下会自动加载这个文件下的布局,如果有需要适配的界面,就可以放在这里面;
    竖屏 layout-land:当布局切换时,竖屏情况下会自动加载这个文件下的布局,如果有需要适配的界面,就可以放在这里面;

    1>: 对于手机的横竖屏、平板而言:

    如果是竖屏,点击列表会跳转详情,详情会是另外一个Activity的界面;
    如果是平板,列表在左边,然后点击列表对应的item,跳转的详情页面会在屏幕右边部分,左右两边都是Fragment来进行切换的;
    手机横屏的情况与平板一样的;


    竖屏、横屏和平板的适配问题.png
    2>: 对于版本而言,比如5.0以下,这里以4.4举例说明和5.0以上:

    比如以MD为例,对于MD中的 FloatingActionBar,即就是右下角出现的按钮,现象就是:

    4.4手机和5.0已上手机放FloatActionBar现象.png

    如果是运行在4.4手机上边会自动的在右下角显示,并且有14dp的间距;
    如果是运行在5.0手机上边,那么这个 FloatingActionBar就会紧贴着屏幕右下角;
    针对于这种情况,可以这样去适配:
    给values设置版本别名,可以重新写一个 values - v21,在里边复制一个dimens.xml文件,然后在里边写一个padding = 14dp,而res 下边的values本来就有dimens,这样就可以在xml文件中给 文字大小 的textSize直接引用 @dimens/ 下的某一个大小即可。

    比如像这样的,就是针对于一些其他的版本去适配的:


    图片.png
    3>: 细节问题

    xml布局文件中尽量使用wrap_content、match_parent、weight等,能不写死就不要写死,在xml文件中尽量不要写:30dp、40dp、个人详情、注册、登录等固定的文本内容和固定大小。

    4>: 屏幕尺寸、屏幕分辨率、屏幕像素密度

    a:屏幕尺寸: 指的是屏幕对角线长度,即就是5.0、5.1、5.5屏幕的尺寸(不是特别重要);
    b:屏幕分辨率:横、纵上边的像素点,单位是px,一般是纵向像素 * 横向像素,比如1920 * 1080、1080*720等等;
    c:屏幕像素密度:指的是每英寸上面的像素点,单位是dpi,这个与屏幕尺寸、屏幕分辨率有关;

    比如 谷歌的Nexus 5手机:
    屏幕的尺寸是 4.95英尺;
    屏幕的分辨率是1920*1080;
    屏幕像素密度 DPI = 445;


    5>: dp、dip、dpi、sp、px之间的关系:

    a:dp、dip指的是屏幕像素密度,以160dpi为基准,1dip(1dp) = 1px;
    b:谷歌推荐sp,字体大小最好都在12sp以上,比如12sp、14sp、18sp、22sp,最好不要使用基数,比如13sp、15sp等等,因为可能会在部分机型上边造成经度丢失,如果设计师非要让你的字体大小设置13sp,这个时候你可以给她说,字体大小最好还是设置成偶数,否则可能会在部分机型上边造成经度丢失。

    6>: mdpi、hdpi、xhdpi、xxhdpi如何计算区分

    ldpi: 120dp 240 * 320;
    mdpi:160dp 320px * 480px 1dp = 1px
    hdpi: 240dp 480 * 800 1dp = 1.5px
    xhdpi:320dp 720*1280 1dp = 2px

    在代码中使用的一般情况都是 px,一般情况都需要转换,在代码中一般这样使用:

    dip2px(80):表示80转换成对应的px

    2. 图片适配


    在项目开发时,有的会切1套图、有的会切3套图,一般:
    mipmap下边放的图标如下,比如这样的:


    图片.png

    drawable一般放其他;

    一般情况下:放一套图就行,但是部分的要区分开,放一套图的一般都放用户量最多的目录下,我们绝大部分都放在xxhdpi下边的,比如QQ的可能都放在xhdpi下边的,可能用户群体更多的是老年人吧;

    特殊情况下:尺寸较大的一些图,一般需要放三套,比如启动页、首页、个人中心的背景图都需要三张:
    启动页就不用说,就是3张启动图,个人中心背景如下图所示:

    图片.png

    还有必须做bitmap的优化,或者使用第三方的图片库去加载,如果所有都用3套图的话,那么apk可能会很大,不太好。

    3. 其他情况

    以下情况必须采用代码去适配:
    如果需要显示的图片是正方形、按比例的轮播条、平板、竖屏显示;

    相关文章

      网友评论

        本文标题:性能优化 - 布局适配与图片适配

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