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 ...
随机推荐
- Oracle播放多条 INSERT ALL
Oracle INSERT ALL 语句介绍 Oracle INSERT ALL 语句用来用一个 INSERT 语句添加多行.该行可以只使用一个SQL命令插入到一个表或多个表. 语法 Oracle I ...
- mysql 里的 ibdata1 文件不断的增长
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题.当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了.一番调查 ...
- leetcode724
public class Solution { public int PivotIndex(int[] nums) { ) { ; } ; ]; if (left == right) { ; } ; ...
- rails 网站跨域
7down voteaccepted gem install rack-cors Or in your Gemfile: gem 'rack-cors', :require => 'rack/c ...
- poi操作word 2007 常用方法总结
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- mysql utf8方式连接查看表数据乱码的问题
起因 今天在公司第一次链接一个新的mysql数据库,我看到在spring里配置的jdbc里datasource.url里有配置characterEncoding=utf8..然后就用navicat开选 ...
- 双 MySQL 启动、停止脚本
5.5 启动 #!/bin/bash # author: Wang Xiaoqiang # func: Start MySQL 5.5 pid=`netstat -lnpt | awk -F '[ / ...
- Cross-Browser, Event-based, Element Resize Detection(转)
DOM Elements! Y U No Resize Event? During your coding adventures, you may have run into occasions wh ...
- RouterOS DNS劫持(转)
什么是DNS劫持 DNS劫持就是通过技术手段,来控制用户解析域名的IP地址.举个例子,正常解析域名www.awolf.net时应该返回IP:64.64.30.60:但现在通过DNS劫持,使域名www. ...
- Scrum由来
历史故事 在越南战争期间(1955年-1975年),对于美国战机飞行员而言,要执行100次飞行任务,飞到敌国领空被击落的概率是50%. 1967年,萨瑟兰还是一个没有经验的年轻飞行员,当时却是做最危险 ...