美文网首页Android无止境
Android开发之自动化屏幕适配方案

Android开发之自动化屏幕适配方案

作者: 踏雪鸿雁 | 来源:发表于2016-10-20 14:27 被阅读193次

    作为一位Android开发者,想必大家都应该遇到过由于Android设备碎片化带来的屏幕适配苦恼。经过工作实践和积累,我总结了一种轻松实现自动化屏幕适配的方案,现分享给大家。

    首先来看一下Android各分辨率对应的标准设备的参数如下:

    标识 屏幕分辨率 屏幕密度比
    ldpi 240*320 120
    mdpi 320*480 160
    hdpi 480*800 240
    xhdpi 720*1280 320
    xxhdpi 1080*1920 480

    由于屏幕密度比为160时,1px=1dp,
    因此,px与dp的转换关系:px= density/160 * dp
    故,dp=(160 / density) * px

    通常UI设计师给出的产品UI设计图的尺寸都是用px标注,而为了更好的屏幕适配,我们开发者需要将UI中给出的px全部转成dp来表示。然而这个转换是一个极其麻烦的事情,需要计算各个分辨率下的尺寸的关系,然后在对应的目录下去修改对应的尺寸值。笔者愚钝,曾经就做过这样的傻事,硬是手动去各个value目录下定义尺寸值。这样做既费时,又没有任何技术含量。
    通常,不懂得偷懒的程序员不是一个好的程序员。为了调高工作的效率,减少UI适配的麻烦,我写了一个AutoDimentsGenerator.jar的工具来自动完成这些工作。以下截图是生产的部分尺寸。

    Paste_Image.png Paste_Image.png Paste_Image.png

    通过一下命令可以自动生成开发中UI所标记的各个尺寸值:
    java -jar AutoDimentsGenerator.jar -uiwidth 1080 -uiheight 1920 -uidensity 320

    另外,在实际开发中有时需要对某个特定分辨率的屏幕做单独的适配,通过这种自动化的方案也是非常简单的。只需要在上面的命令后面加上你想单独适配的分辨率(备注:对这种单独的适配笔者采用的是百分百适配的方式,这样就不用担心分辨率相同但密度比却不同带来的问题)。
    比如开发中需要对2560x1440的分辨率单独适配,运行命令如下:
    java -jar AutoDimentsGenerator.jar -uiwidth 720 -uiheight 1280 -uidensity 320 2560x1440 即可。
    -uiwidth :UI设计图参考设备的宽度
    -uiheight :UI设计图设备的高度
    -uidensity :UI设计图参考设备的密度比

    好了,就到这里了,也该休息了。
    AutoDimentsGenerator.jar 使用该jar运行以上命令就可,是不是非常省事呢!喜欢的赶快用起来把。
    以下为项目的Git地址:https://github.com/hardlove/AutoDiments.git

    相关文章

      网友评论

        本文标题:Android开发之自动化屏幕适配方案

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