前言
好久沒更新內容了,現在疫情差不多穩定了,人們又開啓了豐富多彩的娛樂活動。程序猿們早就開始了工作,其實這段時間發生了很多事,我也不知道寫什麼好,誰知道未來會怎麼樣呢?不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文件。就是這麼簡單方便。
最終效果:是不是很方便呀呀呀呀呀