一.在项目下新建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文件的更多相关文章

  1. Android 屏幕适配:最全面的解决方案

    转自:https://www.jianshu.com/p/ec5a1a30694b 前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威适配文 ...

  2. Android开发——自动生成Android屏幕适配的dimens.xml文件

    使用dimens.xml解决屏幕适配问题是Android官方解决方案,本文主要讲述了如何自动生成Android屏幕适配的dimens.xml,减少了工作量,在维护dimens.xml文件时更加省时省力 ...

  3. Android屏幕适配全攻略(最权威的官方适配指导)屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi

    Android屏幕适配全攻略(最权威的官方适配指导)原创赵凯强 发布于2015-05-19 11:34:17 阅读数 153734 收藏展开 转载请注明出处:http://blog.csdn.net/ ...

  4. 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)

    来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...

  5. Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

  6. Android屏幕适配全攻略(最权威的官方适配指导) (转)

    招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...

  7. 【转】Android屏幕适配全攻略(最权威的官方适配指导)

    原文网址:http://blog.csdn.net/jdsjlzx/article/details/45891551 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的 ...

  8. Android屏幕适配全攻略(最权威的官方适配指导)

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入 ...

  9. android 屏幕适配1 ——dimens.xml的适配

    1.如果是才开始做项目,已经有设计图:720*1280 1).默认values文件夹:1dp=1px values/dimens_x.xml: name: x1~x720   value:1px~72 ...

随机推荐

  1. [Z] Linux下进程的文件访问权限

    原文链接:http://blog.csdn.net/chosen0ne/article/details/10581883 对进程校验文件访问权限包括两个部分,一是确定进程的角色(属于哪个用户或者组), ...

  2. django -- 内置分页

    urls.py from django.conf.urls import url from conn_oracle import views urlpatterns = [ url(r'^page/' ...

  3. Unresolved external 'AlphaBlend' referenced from

    AlphaBlend [Linker Error] Unresolved external 'AlphaBlend' referenced from 解决方案 把文件msimg32.lib添加到工程中 ...

  4. flutter 交互提示方式

    交互提示方式dialog和snackbar 首先看看dialog的方式 new PopupMenuButton( icon: new Icon(Icons.phone_iphone, color: C ...

  5. mybatis与springdata的一些简单比较与思考

    主题 最近在用mybatis做项目,有一些感触想记录下,主要是mybatis(以及它的一些插件)相比较于Spring data(或者jpa,hibernate等)的优势地方. 感触 我觉得mybati ...

  6. JS比较两个数组是否相等 是否拥有相同元素

    Javascript怎么比较两个数组是否相同?JS怎么比较两个数组是否有完全相同的元素?Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都 ...

  7. git 转移

    git push --mirror https://github.com/cloud-pi/drbd-docker-plugin.git

  8. 全部物料的交期都要加上两天 V_OUT_PR

    DUE_DATETIME加上两天就可以,如果只是部分物料的话,就要根据物料组或者别的一些条件去判断

  9. Spark之 使用SparkSql操作Hive的Scala程序实现

    依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2 ...

  10. 简述 ascii、unicode、utf-8、gbk 的关系 (全网最全!!!)

    ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符, Unicode是为了统一世界各国语言的不用,统一 ...