Android中快速生成dimens文件

来源:互联网 发布:apache服务器下载64位 编辑:程序博客网 时间:2024/06/09 17:52

很多公司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文件,报的错误:


原创粉丝点击