若是不了解Calces.screen插件的用法或者想深刻了解sw( Smallest Width) 屏幕适配方案的话,能够阅读上一篇文章:git
给你一个全自动的屏幕适配方案(基于SW方案)!—— 解放你和UI的双手github
原文连接组件化
前段时间,笔者开发了一个名为Calces.Screen的全自动屏幕适配插件,这个插件是基于官方推荐的屏幕适配方案实现的。它的核心原理就是经过配置限定符来设置须要适配的屏幕的最少宽度来实现屏幕适配。而该插件的做用就是经过配置把设计稿的标尺自动生成你须要适配的屏幕dimension资源文件来实现屏幕适配。而且插件还提供了资源图片自动设配方案,因此在开发的时候,咱们只须要提供一套高清的图片资源便可。插件会根据配置自动帮你生成你须要的分辨率的图片。而本插件推出后,有部分使用者反应了一些问题,主要是Screen限制了资源文件的名字为dimens.xml,而且没法图片缩放的时候只支持缩放mipmap文件夹下的图片,因此此次更新主要是为了解决这两个问题的。gradle
若是不了解Calces插件的话,能够登录Github查看项目的介绍。ui
项目地址:calces-gradle-pluginspa
若是想了解Calces是如何实现自动组件化的话,能够阅读这篇文章:插件
你的Star是我坚持的动力👍code
Screen插件在1.2.42以前的版本里面,限制了dimensions文件的名字为dimens.xml的,可是不是全部项目中的dimensions文件都命名为dimens.xml的。例如,咱们把dimensions文件命名为dimen.xml,若是咱们用1.2.42以前版本的Screen插件来生成适配sw dimensions文件的话,则会适配失败。在1.2.42版本的话则解决了这个问题,咱们只须要把dimensFileName设置为dimens就能够了。代码以下:component
screen{
dimens{
dimensFileName "dimen"
designPx 375
smallesWidths 320,375,411,900
scale BigDecimal.ROUND_UP
auto true
}
}
复制代码
在1.2.42的版本中,dimensFileName的默认值是dimens,因此若是dimensions的名字为dimens的话,则能够不设置该值。配置完毕后,从新build一遍项目,就会根据配置生成values-sw320dp、values-sw375dp、values-sw411dp、values-sw900dp的屏幕适配资源文件了。
在1.2.42以前的版本中,Screen插件的资源文件夹默认是mipmap,而且没有提供配置方法。可是有一些老项目中的图片资源是保存在drawable中的,因此Screen插件会和一些比较老的项目产生不兼容的问题。因此在新版本中,Screen提供了配置方法,配置方法也很是简单。在新版本的mipmap的配置项中提供了folder配置,能够经过floder配置待转换的图片资源文件夹的名字。具体配置方法以下:
screen{
mipmap{
folder "drawable"
designDensity "xxxhdpi"
mipmapDensity 'xxhdpi','xhdpi','hdpi'
auto true
}
}
复制代码
十分简单,配置完毕后,从新build一下就能够生成须要密度的图片资源了。如上面的例子中,会生成drawable-xxhdpi、drawable-xhdpi、drawable-hdpi文件夹,转换后的图片就会保存在这里。
这篇博客很是简单,主要是介绍Calces.Screen插件的重要更新。上个版本的Calces.Screen插件推出后收到反馈比较多的问题。由于笔者在开发Calces.Screen插件的时候,是基于比较新的Android SDK进行开发的。没有考虑对旧版本的项目的兼容,在这里很是感谢提出意见的读者。若是你们有什么想法的话,能够对Calces项目提交pull request,又或者直接发邮件给我也是能够的。
在这里在提醒一下你们,若是但愿进一步了解Calces插件或者你对Android自动化构建有什么想法的话,能够去Github上提交pull request,或者发邮件联系我。这里也很是欢迎你们参与到Calces的开发中。若是以为这个插件好用的话,欢迎点下star
扫一扫二维码能够关注我: