anroid中批量将px转换成dp

本文介绍了一个使用Java编写的程序,该程序能够生成包含不同像素值对应的dp单位的XML资源文件,适用于Android项目的资源定义。
package com.qu;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Aaaa {

	public static void main(String[] args) {
		String filePath = "E:\\AndroidStudioProjects\\aa.txt";
        String buffer =  pxTodp();
        TextToFile(filePath,buffer);
	}
	
	  public static void TextToFile(final String strFilename, final String strBuffer)
	  {
	    try
	    {    
	      // 创建文件对象
	      File fileText = new File(strFilename);
	      // 向文件写入对象写入信息
	      FileWriter fileWriter = new FileWriter(fileText);

	      // 写文件      
	      fileWriter.write(strBuffer);
	      // 关闭
	      fileWriter.close();
	    }
	    catch (IOException e)
	    {
	      //
	      e.printStackTrace();
	    }
	  }
	  
	  public static String  pxTodp(){
	        int width = 750;//屏幕宽度
	        int height = 1334;//屏幕高度
	        float screenInch = 4.7f;//屏幕尺寸
	       //设备密度公式
	        float density = (float) Math.sqrt(width * width + height * height) / screenInch / 160;

	        StringBuilder stringBuilder = new StringBuilder();
	        stringBuilder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n");
	        for (int px = 0; px <= 1000; px += 2) {
	            //像素值除以density
	            String dp = px * 1.0f / density + "";
	            //拼接成资源文件的内容,方便引用
	            if (dp.indexOf(".") + 4 < dp.length()) {//保留3位小数
	                dp = dp.substring(0, dp.indexOf(".") + 4);
	            }
	            stringBuilder.append("<dimen name=\"px").append(px + "").append("\">").append(dp).append("dp</dimen>\n");
	        }
	        stringBuilder.append("</resources>");
	        return stringBuilder.toString();
	    }

}

 

转载于:https://my.oschina.net/quguangle/blog/1860488

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值