android屏幕适配,生成不同分辨率的dimen.xml文件
一.在项目下新建moudle,选择Java Library

二.DimenUtils类
public class DimenUtils {
//文件保存的路径 是在该项目下根路径下创建 比如该项目创建的路径是E:\project3.0\,
// 则保存的文件路径是E:\project3.0\DimenDemo\app\src\main\res\values-1920x1080\dimen.xml
private final static String rootPath = "app/src/main/res/values-{0}x{1}";
private final static float dw = 1080f;//默认布局的宽
private final static float dh = 720f;//默认布局的高
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(1080, 720);
makeString(1920, 1080);
makeString(1366, 768);
}
//获取dimen.xml的文本内容
public static void makeString(int w,int h){
System.out.println("1111111111");
StringBuffer sb=new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
sb.append("<resources>");
//遍历获取一系列宽的值
float cellw =w / dw;//宽的比例
for (int i = 0; i <dw ; i++) {
sb.append(WTemplate.replace("{0}",i + "").replace("{1}",
change(cellw * i) + ""));
}
sb.append(WTemplate.replace("{0}",dw+"").replace("{1}", w + ""));
//遍历获取一系列高的值
float cellh=h/dh;//高的比例
for (int i = 0; i <dh ; i++) {
sb.append(HTemplate.replace("{0}",i + "").replace("{1}",
change(cellh * i) + ""));
}
sb.append(HTemplate.replace("{0}",dh+"").replace("{1}", h+ ""));
sb.append("</resources>");
makeFile(w,h,sb.toString());
}
//创建文件并写入内容
private static void makeFile(int w,int h,String text){
System.out.println("22222222222222");
String path = rootPath.replace("{0}",w+ "").replace("{1}",h+ "");
File rootFile = new File(path);
if (!rootFile.exists()) {
rootFile.mkdirs();
}
File file=new File(path,"dimen.xml");
System.out.println("333333333333333:"+file.getAbsolutePath());
try {
PrintWriter pw=new PrintWriter(new FileOutputStream(file));
pw.println(text);
pw.close();
System.out.println("4444444444444444");
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("5555555555555555");
}
}
public static float change(float a) {
int temp = (int) (a * 100);
return temp / 100f;
}
}
三.运行生成文件

android屏幕适配,生成不同分辨率的dimen.xml文件的更多相关文章
- Android 屏幕适配:最全面的解决方案
转自:https://www.jianshu.com/p/ec5a1a30694b 前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威适配文 ...
- Android开发——自动生成Android屏幕适配的dimens.xml文件
使用dimens.xml解决屏幕适配问题是Android官方解决方案,本文主要讲述了如何自动生成Android屏幕适配的dimens.xml,减少了工作量,在维护dimens.xml文件时更加省时省力 ...
- Android屏幕适配全攻略(最权威的官方适配指导)屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi
Android屏幕适配全攻略(最权威的官方适配指导)原创赵凯强 发布于2015-05-19 11:34:17 阅读数 153734 收藏展开 转载请注明出处:http://blog.csdn.net/ ...
- 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)
来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...
- Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...
- Android屏幕适配全攻略(最权威的官方适配指导) (转)
招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...
- 【转】Android屏幕适配全攻略(最权威的官方适配指导)
原文网址:http://blog.csdn.net/jdsjlzx/article/details/45891551 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的 ...
- Android屏幕适配全攻略(最权威的官方适配指导)
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入 ...
- android 屏幕适配1 ——dimens.xml的适配
1.如果是才开始做项目,已经有设计图:720*1280 1).默认values文件夹:1dp=1px values/dimens_x.xml: name: x1~x720 value:1px~72 ...
随机推荐
- 数据分析之Numpy-数组计算
引言 : 数据分析 : 就是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出研究对象的内在规律 . 数据分析三剑客 : Numpy 数组计算 Pandas 表计算与数据分析 ...
- nginx-rtmp-module--------------WIKI
https://github.com/arut/nginx-rtmp-module/wiki/Directives#idle_streams ============================= ...
- git如何处理别人的pull request及解决冲突 (转)
原贴地址 出过两次了,每次都查很多资料,太蛋疼,记录在此. 当你的项目比较牛逼的时候,有人给你贡献代码,但他修改的地方恰恰你前阵子也修改了,这样在github中就不能够自动merge了. 因此你需要手 ...
- Linux任务前后台的切换(转)
Linux任务前后台的切换 Shell支持作用控制,有以下命令实现前后台切换: 1. command& 让进程在后台运行 2. jobs 查看后台运行的进程 3. fg %n 让后台运行的 ...
- ASP.NET Web API(C#)学习01
Web Api 记得去年公司有个分享会分享了这个,最近留意招聘信息的时候,发现有个招聘信息的要求是会用WebApi,然后花了半个小时不到,根据下面这篇文章了解了一下,觉得这个东西也不难啊. 突然发现在 ...
- swarmkit test
swarmd -d /tmp/node-1 --listen-control-api /tmp/node-1/swarm.sock --hostname mhc --engine-addr=tcp:/ ...
- web前端整套面试题(二)--今日头条面试题
12道单选,7道不定项选择,2道编程题 一.单选(12题) 1.[单选题]在HTML中,( )可以在网页上通过链接直接打开邮件客户端发送邮件. A.<a href=”telnet:ming.zh ...
- Apache Hive (二)Hive安装
转自:https://www.cnblogs.com/qingyunzong/p/8708057.html Hive的下载 下载地址http://mirrors.hust.edu.cn/apache/ ...
- Android开发实战之拥有Material Design风格的折叠布局
关于折叠布局,也许你并不陌生,最新版的陌陌,或者一些其他的社交APP都有一个折叠布局.折叠布局,让我们的APP更加具有交互性,同时也更加美观,先来展示一下效果图: 这是我个人做的一个APP主界面,可以 ...
- 文件操作类File
File类:提供用于创建.复制.删除.移动和打开文件的静态方法.File类 FileInfo类:提供创建.复制.删除.移动和打开文件的属性和实例方法.FileInfo类 Directory类:公开用于 ...