前言
好久没更新内容了,现在疫情差不多稳定了,人们又开启了丰富多彩的娱乐活动。程序猿们早就开始了工作,其实这段时间发生了很多事,我也不知道写什么好,谁知道未来会怎么样呢?不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文件。就是这么简单方便。
最终效果:是不是很方便呀呀呀呀呀