import java.io.*;
import java.text.DecimalFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DimenScaler {
public static void main(String[] args) {
//原始 dimens文件的路径
String sourcePath = "C:\\Users\\Desktop\\test\\dimens.xml";
//新 dimens文件的路径
String outputPath = "C:\\Users\\Desktop\\test\\dimens-plusss.xml";
//缩放因子
float scaleFactor = 1.5f; //1.5倍缩放,可以根据需要修改
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
try {
//创建输入流和输出流
FileInputStream fis = new FileInputStream(sourcePath);
FileOutputStream fos = new FileOutputStream(outputPath);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos));
String line;
Pattern dimenPattern = Pattern.compile("<dimen name=\"(.*?)\">([0-9]+\\.?[0-9]*)[dp|px|sp]+</dimen>");
while ((line = reader.readLine()) != null) {
Matcher matcher = dimenPattern.matcher(line);
if (matcher.find()) {
String name = matcher.group(1);
float value = Float.parseFloat(matcher.group(2));
String unit = line.contains("dp") ? "dp" : line.contains("px") ? "px" : "sp";
float scaledValue = scaleValue(value, scaleFactor);
String formattedValue = decimalFormat.format(scaledValue);
line = "<dimen name=\"" + name + "\">" + formattedValue + unit + "</dimen>";
}
writer.write(line + "\n");
}
reader.close();
writer.close();
System.out.println("dimens文件已生成:" + outputPath);
} catch (Exception e) {
e.printStackTrace();
}
}
private static float scaleValue(float value, float scaleFactor) {
return value * scaleFactor;
}
}
Android等比例缩放dimens.xml数据
最新推荐文章于 2024-07-14 03:27:39 发布