Android中快速生成dimens文件

很多公司ui为了兼容Android和iOS,切的图都是按照iPhone6的尺寸来切的一倍图,而且都是px为单位的,我们使用的时候还需要进行转换,很麻烦,iPhone6的尺寸对应Android的xhdpi。所以自己就写了一个java工具类直接来生成demins文件。

public class MyClass {
	private static final String mPath = "./src/wxz/dimens-m.xml";
    private static final String hPath = "./src/wxz/dimens-h.xml";
    private static final String xhPath = "./src/wxz/dimens-xh.xml";
    private static final String xxhPath = "./src/wxz/dimens-xxh.xml";
    private static final String xxxhPath = "./src/wxz/dimens-xxxh.xml";

    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        myClass.createDimens();
    }

    private void createDimens() {
        System.out.println("createDimens: start");
        try {
            File mFile = new File(mPath);
            File hFile = new File(hPath);
            File xhFile = new File(xhPath);
            File xxhFile = new File(xxhPath);
            File xxxhFile = new File(xxxhPath);
            if (!mFile.exists()) {
                mFile.createNewFile();
            }
            if (!hFile.exists()) {
                hFile.createNewFile();
            }
            if (!xhFile.exists()) {
                xhFile.createNewFile();
            }
            if (!xxhFile.exists()) {
                xxhFile.createNewFile();
            }
            if (!xxxhFile.exists()) {
                xxxhFile.createNewFile();
            }
            FileWriter mWriter = new FileWriter(mFile);
            FileWriter hWriter = new FileWriter(hFile);
            FileWriter xhWriter = new FileWriter(xhFile);
            FileWriter xxhWriter = new FileWriter(xxhFile);
            FileWriter xxxhWriter = new FileWriter(xxxhFile);
            BufferedWriter mBuffer = new BufferedWriter(mWriter);
            BufferedWriter hBuffer = new BufferedWriter(hWriter);
            BufferedWriter xhBuffer = new BufferedWriter(xhWriter);
            BufferedWriter xxhBuffer = new BufferedWriter(xxhWriter);
            BufferedWriter xxxhBuffer = new BufferedWriter(xxxhWriter);
            mBuffer.write("<resources>");
            hBuffer.write("<resources>");
            xhBuffer.write("<resources>");
            xxhBuffer.write("<resources>");
            xxxhBuffer.write("<resources>");
            mBuffer.newLine();
            hBuffer.newLine();
            xhBuffer.newLine();
            xxhBuffer.newLine();
            xxxhBuffer.newLine();
            StringBuilder ms;
            StringBuilder hs;
            StringBuilder xhs;
            StringBuilder xxhs;
            StringBuilder xxxhs;
            for (int i = 1; i <= 1200; i++) {
                ms = new StringBuilder();
                hs = new StringBuilder();
                xhs = new StringBuilder();
                xxhs = new StringBuilder();
                xxxhs = new StringBuilder();
                ms.append("<dimen name=\"").append("px").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 1.00)).append("dp").append("</dimen>");
                hs.append("<dimen name=\"").append("px").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 1.50)).append("dp").append("</dimen>");
                xhs.append("<dimen name=\"").append("px").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 2.00)).append("dp").append("</dimen>");
                xxhs.append("<dimen name=\"").append("px").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 3.00)).append("dp").append("</dimen>");
                xxxhs.append("<dimen name=\"").append("px").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 4.00)).append("dp").append("</dimen>");
                mBuffer.write(ms.toString());
                hBuffer.write(hs.toString());
                xhBuffer.write(xhs.toString());
                xxhBuffer.write(xxhs.toString());
                xxxhBuffer.write(xxxhs.toString());
                mBuffer.newLine();
                hBuffer.newLine();
                xhBuffer.newLine();
                xxhBuffer.newLine();
                xxxhBuffer.newLine();
            }
            for (int i = 1; i <= 120; i++) {
                ms = new StringBuilder();
                hs = new StringBuilder();
                xhs = new StringBuilder();
                xxhs = new StringBuilder();
                xxxhs = new StringBuilder();
                ms.append("<dimen name=\"").append("sp").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 1.00)).append("sp").append("</dimen>");
                hs.append("<dimen name=\"").append("sp").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 1.50)).append("sp").append("</dimen>");
                xhs.append("<dimen name=\"").append("sp").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 2.00)).append("sp").append("</dimen>");
                xxhs.append("<dimen name=\"").append("sp").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 3.00)).append("sp").append("</dimen>");
                xxxhs.append("<dimen name=\"").append("sp").append(i).append("\">").append(String.format(Locale.CHINA, "%1$.2f", i / 4.00)).append("sp").append("</dimen>");
                mBuffer.write(ms.toString());
                hBuffer.write(hs.toString());
                xhBuffer.write(xhs.toString());
                xxhBuffer.write(xxhs.toString());
                xxxhBuffer.write(xxxhs.toString());
                mBuffer.newLine();
                hBuffer.newLine();
                xhBuffer.newLine();
                xxhBuffer.newLine();
                xxxhBuffer.newLine();
            }
            mBuffer.newLine();
            hBuffer.newLine();
            xhBuffer.newLine();
            xxhBuffer.newLine();
            xxxhBuffer.newLine();
            mBuffer.write("</resources>");
            hBuffer.write("</resources>");
            xhBuffer.write("</resources>");
            xxhBuffer.write("</resources>");
            xxxhBuffer.write("</resources>");
            mBuffer.flush();
            hBuffer.flush();
            xhBuffer.flush();
            xxhBuffer.flush();
            xxxhBuffer.flush();
            mWriter.flush();
            hWriter.flush();
            xhWriter.flush();
            xxhWriter.flush();
            xxxhWriter.flush();
            mBuffer.close();
            hBuffer.close();
            xhBuffer.close();
            xxhBuffer.close();
            xxxhBuffer.close();
            mWriter.close();
            hWriter.close();
            xhWriter.close();
            xxhWriter.close();
            xxxhWriter.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("createDimens: end");
    }
}
可以直接使用eclipse来运行java文件,之后就可以在当前项目下生成对应的尺寸文件。

吐槽一下,AndroidStudio3.0上运行纯java文件,跑不起来,我不知道是什么原因,如果有哪位大神之后,希望能给一个解答,我截一个as3.0运行纯java文件,报的错误:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值