Skip to content

helloyuyu/DimensAdjuster

Repository files navigation

DimensAdjuster

基于Smallest Width的屏幕适配插件

引入

在顶级build.gradle 加入classpath

buildscript {

    dependencies {
        classpath 'com.helloyuyu:dimens-adjuster:1.1.1'
    }
}

在module build.gradle中引用插件

apply plugin: 'com.helloyuyu.dimensadjuster'

项目全局参数配置顶级build.gradle中

ext {
    //全局参数设置
    adjustArgsGlobal = [
            //基准的SmallestWidth
            'basicSW'         : 360,
            //要适配的SmallestWidth列表
            'adjustSWs'       : [320, 360, 390, 410],
            //是否开启
            'adjustEnable'    : true,
            //排除的dimen
            'excludes'        : ['sp18'],
            //计算时候遇到浮点数是否四舍五入
            'dimenValueHalfUp': false,
    ]
}

全局的参数设置是可选的

Module中如果全局参数没有配置或则想要复写全局的配置的参数设置

android{
//...
}
adjustArgs {
    //基准的SmallestWidth
    basicSW 400
    //基准的SmallestWidth对应的dimens.xml文件路径 只有在sourceSet改变了默认路径才需要设置 默认已经赋值了的
    basicDimensXmlFilePath new File("$project.projectDir/src/main/res/values/dimens.xml").getAbsolutePath()
    //要适配的SmallestWidth列表
    adjustSWs = [320, 360, 390, 410]
    //要排除的dimen
    excludes = ['sp18','dp36']
    //编译时候是否开启
    adjustEnable = true
}

最终文件生成

图片

参数说明

  • basicDimensXmlFilePath 基准的SmallestWidth对应的dimens.xml文件路径 默认值new File("$project.projectDir/src/main/res/values/dimens.xml").getAbsolutePath() 一般只有在sourceSet改变了默认路径才需要设置
  • basicSW 基准的SmallestWidth
  • adjustSWs 要适配的SmallestWidth列表 这部分暂时只是在测试平台上代码反馈统计,没有找到很好的数据统计来源 有多少奇葩SW的值不能确定 Android的碎片化你懂得,以上只是一些些,实际项目中可以选择 10~20dp梯度列表 如果小伙伴有统计数据请在 issue中补上不胜感激
  • excludes 要排除的dimen列表 例如要排除 <dimen name="dp36">36dp</dimen> 则在excludes中加上‘dp36’
  • adjustEnable 编译的时候是否需要生成适配文件
  • dimenValueHalfUp 在计算的时候dimen数值出现浮点是否四舍五入

Email

[email protected]