自動生成Android dimens.xml文件

前言

好久沒更新內容了,現在疫情差不多穩定了,人們又開啓了豐富多彩的娛樂活動。程序猿們早就開始了工作,其實這段時間發生了很多事,我也不知道寫什麼好,誰知道未來會怎麼樣呢?不bb了,生活還得繼續。
在Android開發日常中,相信對dimens.xml文件還是很熟悉的,我們會把單位寫在這個文件裏,而不用直接硬編碼在佈局裏。當然dimems.xml還有另一個用途,就是官方出的屏幕分辨率適配方案,不同分辨率下讀取不同的dimens.xml文件,分別在不同目錄下:

./app/src/main/res/values-sw480dp-land/dimens.xml  
./app/src/main/res/values-sw600dp-land/dimens.xml  
./app/src/main/res/values-sw720dp-land/dimens.xml  
./app/src/main/res/values-sw800dp-land/dimens.xml  
./app/src/main/res/values-w820dp/dimens.xml

當然屏幕適配方案有很多,我比較喜歡用今日頭條的方案,令人拍案叫絕,在這裏我就不贅述相關內容了,感興趣的小夥伴可以去看看。

正文

上面的內容只是介紹dimen.xml文件,下面開始正文內容,人工處理這些dimens.xml文件畢竟是個體力活,弄起來比較麻煩。程序員嘛,當然要從重複的無意義的活動中抽身出來,那是機器乾的事,哈哈哈哈,所以就有了下面這段代碼:

public class GenerateDimenTool {
    public static void main(String[] args) {
        StringBuilder sw400 = new StringBuilder();
        //添加xml開始的標籤
        String xmlStart = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
                "<resources>\n";
        sw400.append(xmlStart);
        //添加內容
        for (int i = 0; i <= 1920; i++) {
//            此處name後的標籤名可以自定義"margin_"隨意更改
            String start = "<dimen name=\"dimen_" + i + "\">";
            String end = "dp</dimen>";
            sw400.append(start).append(i).append(end).append("\n");
        }
        //添加xml的尾標籤
        sw400.append("</resources>");
        String sw400file = "./app/src/main/res/values/dimens.xml";
        writeFile(sw400file, sw400.toString());
    }

    public static void writeFile(String file, String text) {
        PrintWriter out = null;
        try {
            out = new PrintWriter(new BufferedWriter(new FileWriter(file)));
            out.println(text);
        } catch (IOException e) {
            e.printStackTrace();
        }

        out.close();
    }
}

實施

這一節的內容,如果上面已經看明白了,基本上就可以忽略了。

第一步:打開Android Studio,可以在你項目目錄下,新建一個tools文件夾,畢竟不要跟工程文件混在一起比較好,然後新建一個類,將上述代碼copy過去。
在這裏插入圖片描述
第二步:如圖,將這個文件run起來,等執行結束,然後你會在對應目錄下看到生成的dimens.xml文件。就是這麼簡單方便。
在這裏插入圖片描述最終效果:是不是很方便呀呀呀呀呀在這裏插入圖片描述

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