美文网首页
android适配心得

android适配心得

作者: 阿星_ | 来源:发表于2018-11-21 23:03 被阅读0次

    前言

    比如美工给的Ui是1080P的,那我们如果以该分辨率为标准的话。

    如果美工给的是px,那么除以3就是dp了。

    其实这是不对的,除以几不是通过分辨率来决定的。

    而是通过dpi来决定的。

    而dpi则是每英寸多少像素,越高屏幕越精细。

    dpi和dp则完全不同。

    dp等同于dip。

    在160dpi上1dp就是1px,240dp上则是1.5px。

    其实我们写在代码里的dp,最终都要化为px,也就是像素数量来衡量大小。

    可能在小公司不考虑适配问题。

    直接拿px算dp,然后写在xml里,然后图片,直接要来最大分辨率的图片,直接用dp写死尺寸,其实要求不那么完美的话,也是可以用的。

    但如果还是想要做好不同尺寸和分辨率手机适配的话。

    现在的最佳适配方案是sw。 最小宽度限定。

    目前市面上有非常多的设备的sw值是360dp的。

    我们一般创建360dp和480dp的sw文件夹即可,如果要适配平板的话。

    就要加上600dp和720dp的文件夹。

    那么接下来的关键就是这几个文件夹的文件数值怎么计算了。

    dpi计算公式 屏幕最小宽度dp计算

    需要注意的是最小宽度是不考虑横屏和竖屏的,也就是说最小宽度是屏幕最短的那两条边。

    如果需要考虑横竖屏需要加入屏幕方向限定符,不在本文讨论范围。

    其实用600dp可以区分手机和平板两类设备了。

    比如UI设计尺寸是:750 x 1334 , dpi = 320 , screenWidthDp = 750/(320/160) = 375,以此UI设计尺寸作为基准。

    基准:1dp = 1dp = 2px  (由于基准dpi是320,1dp=2px)

    dpi = 320 --> 1dp = 1 * (375 / 375) = 1dp

    dpi = 480 --> 1dp = 1 * (480 / 375) = 1.28dp

    dpi = 640 --> 1dp = 1 * (640 / 375) = 1.7dp

    dpi = 240 --> 1dp = 1 * (240 / 375) = 0.64dp

    dpi = 160 --> 1dp = 1 * (160 / 375) = 0.426dp

    //根据屏幕最小宽度的dp值创建文件夹

        swdp               倍数关系

    values-sw240dp       1dp = 0.64dp

    values-sw320dp       1dp = 0.85dp

    values-sw360dp       1dp = 0.96dp

    values-sw375dp       1dp = 1dp

    values-sw400dp       1dp = 1.06dp

    values-sw480dp       1dp = 1.28dp

    values-sw600dp       1dp = 1.6dp

    values-sw720dp       1dp = 1.92dp

    values-sw800dp       1dp = 2.13dp

    values-sw820dp       1dp = 2.18dp

    这些计算的基准是Ui图。

    https://github.com/ladingwu/dimens_sw   大神提供的生成sw文件的java项目。

    原理是设计稿的宽度是x dp,然后根据设计稿的x dp,生成对应其他具体 比如360 480的values文件即可,根据和x的比例计算,很简单。而默认的文件夹不用生成dimens.xml的。

    把常用的设计稿的dp,算出来其他对应的文件里的dp即可。

    设计稿是需要有dpi(每英寸像素)和具体px尺寸的,可以用来算设计稿的宽度。

    而dp也是通过px和dpi来计算的。

    px=dp*(dpi/160)   160dpi是基准dpi。

    在160dpi的设备上1dp=1px。

    还有一种今日头条的适配方案。

    大厂使用,可靠性应该可以。

    缺点可能是和第三方库要单独对actvitiy进行适配吧。

    虽然现在不怎么做安卓了,但是和同事讨论到这些还是想弄明白。

    以上。

    相关文章

      网友评论

          本文标题:android适配心得

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