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 ...
随机推荐
- [Z] Linux下进程的文件访问权限
原文链接:http://blog.csdn.net/chosen0ne/article/details/10581883 对进程校验文件访问权限包括两个部分,一是确定进程的角色(属于哪个用户或者组), ...
- django -- 内置分页
urls.py from django.conf.urls import url from conn_oracle import views urlpatterns = [ url(r'^page/' ...
- Unresolved external 'AlphaBlend' referenced from
AlphaBlend [Linker Error] Unresolved external 'AlphaBlend' referenced from 解决方案 把文件msimg32.lib添加到工程中 ...
- flutter 交互提示方式
交互提示方式dialog和snackbar 首先看看dialog的方式 new PopupMenuButton( icon: new Icon(Icons.phone_iphone, color: C ...
- mybatis与springdata的一些简单比较与思考
主题 最近在用mybatis做项目,有一些感触想记录下,主要是mybatis(以及它的一些插件)相比较于Spring data(或者jpa,hibernate等)的优势地方. 感触 我觉得mybati ...
- JS比较两个数组是否相等 是否拥有相同元素
Javascript怎么比较两个数组是否相同?JS怎么比较两个数组是否有完全相同的元素?Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都 ...
- git 转移
git push --mirror https://github.com/cloud-pi/drbd-docker-plugin.git
- 全部物料的交期都要加上两天 V_OUT_PR
DUE_DATETIME加上两天就可以,如果只是部分物料的话,就要根据物料组或者别的一些条件去判断
- Spark之 使用SparkSql操作Hive的Scala程序实现
依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2 ...
- 简述 ascii、unicode、utf-8、gbk 的关系 (全网最全!!!)
ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符, Unicode是为了统一世界各国语言的不用,统一 ...