在项目中创建包tools,创建自动生成demens.xml工具类GenerateDimenTool,将如下代码复制到类中
public class GenerateDimenTool {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
//添加xml开始的标签
String xmlStart = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n <resources>\n";
builder.append(xmlStart);
for (int i = 0; i <= 300; i++) {
String dimenName = " <dimen name=\"dp" + i + "\">";
String end = "dp</dimen>";
builder.append(dimenName).append(i).append(end).append("\n");
}
//添加sp
builder.append("\n\n\n<!--sp-->\n");
for (int i = 1; i <= 50; i++) {
String dimenName = " <dimen name=\"sp" + i + "\">";
String end = "sp</dimen>";
builder.append(dimenName).append(i).append(end).append("\n");
}
//添加xml的尾标签
builder.append("</resources>");
String dimensFile = "./app/src/main/res/values/dimens.xml";
PrintWriter out = null;
try {
out = new PrintWriter(new BufferedWriter(new FileWriter(dimensFile)));
out.println(builder);
} catch (IOException e) {
e.printStackTrace();
}
out.close();
}
}
点击右键或者在项目目录中右键点击GenerateDimenTool,选择Run
如遇以下问题
解决方案:在.idea文件夹下的gradle.xml中插入以下代码
全部解决完就会自动生成dimens.xml啦
适配所有页面可以安装一个ScreenMatch插件
在项目中点击右键选择ScreenMatch,坐等生成适配dimens.xml吧
如果生成的values没有适配到某些机型还可以到screenMatch.properties中自定义后重新生成
大功告成!