給你一個全自動的屏幕適配方案(基於SW方案)二 —— Calces.Screen插件拓展功能升級

如果不瞭解Calces.screen插件的用法或者想深入瞭解sw( Smallest Width) 屏幕適配方案的話,可以閱讀上一篇文章:

給你一個全自動的屏幕適配方案(基於SW方案)!—— 解放你和UI的雙手

<!--more-->

原文鏈接

前言

前段時間,筆者開發了一個名爲Calces.Screen的全自動屏幕適配插件,這個插件是基於官方推薦的屏幕適配方案實現的。它的核心原理就是通過配置限定符來設置需要適配的屏幕的最少寬度來實現屏幕適配。而該插件的作用就是通過配置把設計稿的標尺自動生成你需要適配的屏幕dimension資源文件來實現屏幕適配。並且插件還提供了資源圖片自動設配方案,所以在開發的時候,我們只需要提供一套高清的圖片資源即可。插件會根據配置自動幫你生成你需要的分辨率的圖片。而本插件推出後,有部分使用者反應了一些問題,主要是Screen限制了資源文件的名字爲dimens.xml,並且無法圖片縮放的時候只支持縮放mipmap文件夾下的圖片,所以這次更新主要是爲了解決這兩個問題的。

如果不瞭解Calces插件的話,可以登陸Github查看項目的介紹。

項目地址:calces-gradle-plugin

如果想了解Calces是如何實現自動組件化的話,可以閱讀這篇文章:

Gradle自動實現Android組件化模塊構建

你的Star是我堅持的動力👍

Screen插件指定dimensions的文件名

Screen插件在1.2.42之前的版本里面,限制了dimensions文件的名字爲dimens.xml的,但是不是所有項目中的dimensions文件都命名爲dimens.xml的。例如,我們把dimensions文件命名爲dimen.xml,如果我們用1.2.42之前版本的Screen插件來生成適配sw dimensions文件的話,則會適配失敗。在1.2.42版本的話則解決了這個問題,我們只需要把dimensFileName設置爲dimens就可以了。代碼如下:

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的屏幕適配資源文件了。

Screen插件指定資源文件夾的名字

在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是我堅持的動力👍

掃一掃二維碼可以關注我:

qr

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章