若是不瞭解Calces.screen插件的用法或者想深刻了解sw( Smallest Width) 屏幕適配方案的話,能夠閱讀上一篇文章:git
給你一個全自動的屏幕適配方案(基於SW方案)!—— 解放你和UI的雙手github
<!--more-->組件化
原文連接gradle
前段時間,筆者開發了一個名爲Calces.Screen的全自動屏幕適配插件,這個插件是基於官方推薦的屏幕適配方案實現的。它的核心原理就是經過配置限定符來設置須要適配的屏幕的最少寬度來實現屏幕適配。而該插件的做用就是經過配置把設計稿的標尺自動生成你須要適配的屏幕dimension資源文件來實現屏幕適配。而且插件還提供了資源圖片自動設配方案,因此在開發的時候,咱們只須要提供一套高清的圖片資源便可。插件會根據配置自動幫你生成你須要的分辨率的圖片。而本插件推出後,有部分使用者反應了一些問題,主要是Screen限制了資源文件的名字爲dimens.xml,而且沒法圖片縮放的時候只支持縮放mipmap文件夾下的圖片,因此此次更新主要是爲了解決這兩個問題的。ui
若是不瞭解Calces插件的話,能夠登錄Github查看項目的介紹。spa
項目地址:calces-gradle-plugin插件
若是想了解Calces是如何實現自動組件化的話,能夠閱讀這篇文章:設計
你的Star是我堅持的動力👍
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
你的Star是我堅持的動力👍
掃一掃二維碼能夠關注我: