Android屏幕适配

private final static String WTemplate = "<dimen name=\"x{0}\">{1}px</dimen>\n";

private final static String HTemplate = "<dimen name=\"y{0}\">{1}px</dimen>\n";



// 手机分辨率

public static void main(String [] args){

    makeString(320, 480);

    makeString(480, 800);

    makeString(480, 854);

    makeString(540, 960);

    makeString(600, 1024);

    makeString(720, 1184);

    makeString(720, 1196);

    makeString(720, 1280);

    makeString(768, 1024);

    makeString(800, 1280);

    makeString(1080, 1812);

    makeString(1080, 1920);

    makeString(1440, 2560);



}



public static void makeString(int w, int h) {



    StringBuffer sb = new StringBuffer();

    sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");

    sb.append("<resources>");

    float cellw = w / dw;

    for (int i = 1; i < dw; i++) {

        sb.append(WTemplate.replace("{0}", i + "").replace("{1}", change(cellw * i) + ""));

    }

    sb.append(WTemplate.replace("{0}", "720").replace("{1}", w + ""));

    sb.append("</resources>");



    StringBuffer sb2 = new StringBuffer();

    sb2.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");

    sb2.append("<resources>");

    float cellh = h / dh;

    for (int i = 1; i < dh; i++) {

        sb2.append(HTemplate.replace("{0}", i + "").replace("{1}", change(cellh * i) + ""));

    }

    sb2.append(HTemplate.replace("{0}", "1280").replace("{1}", h + ""));

    sb2.append("</resources>");



    String path = rootPath.replace("{0}", h + "").replace("{1}", w + "");

    File rootFile = new File(path);

    if (!rootFile.exists()) {

        rootFile.mkdirs();

    }

    File layxFile = new File(path + "lay_x.xml");

    File layyFile = new File(path + "lay_y.xml");

    try {

        PrintWriter pw = new PrintWriter(new FileOutputStream(layxFile));

        pw.print(sb.toString());

        pw.close();

        pw = new PrintWriter(new FileOutputStream(layyFile));

        pw.print(sb2.toString());

        pw.close();

    } catch (FileNotFoundException e) {

        e.printStackTrace();

    }



}



public static float change(float a) {

    int temp = (int) (a * 100);

    return temp / 100f;

}

}




生成适配文件

------



> 将**上述工具类(MakeXml.java)**放置在任意目录下,按住**Shift+鼠标右键**,点击**在此处打开命令窗口**,  

> 或者  

> **Windows键 + R**,输入**cmd**,打开命令行窗口以后,再进入到MakeXml.java所在目录

> 

> 我是把MakeXml.java放在了桌面



![P1](https://img-blog.csdn.net/20151218160006458)



> 输入编译指令,会生成.class文件



javac MakeXml.java




![P4](https://img-blog.csdn.net/20151218160050867)



> 在编译过程中,可能会出现如下错误



![P2](https://img-blog.csdn.net/20151218160114175)



> 右键使用文本编辑器,另存为,改下编码就行了



![P3](https://img-blog.csdn.net/20151218160144684)



> 最后一步,输入指令,生成xml文件



java MakeXml




> 如下



![P5](https://img-blog.csdn.net/20151218160223854)



> 到此,xml已经生成了,到C盘下看一下



![P6](https://img-blog.csdn.net/20151218160240829)



适配文件的使用

-------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值