import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.io.PrintStream
import java.math.BigDecimal
class BatchPrintlnResDimenIO {
companion object{
@JvmStatic
fun main(args: Array<String>) {
start()
}
private fun start() {
//sw400 - sw1000 以sw800dp为准
var baseDp=800 //以sw800dp为基准
for (i in 400..1000 step 5){
//文件夹名称
val folderName="values-sw${i}dp"
//文件名称
val dimenFileName="dimens-sw${i}dp.xml"
val mRate = i.toDouble()/baseDp.toDouble()
var outStr=""
outStr+="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"<resources xmlns:tools=\"http://schemas.android.com/tools\">\n"
for (i in 1 .. 1300){
val bigDecimal = BigDecimal(i*mRate)
val toDouble = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).toDouble()
val ignore=" tools:ignore=\"MissingDefaultResource\""
val str="<dimen name=\"DIMEN_WIDTH_${i}_DP\"$ignore>${toDouble}dp</dimen>\n"
outStr+=str
}
for (i in 1 .. 100){
val bigDecimal = BigDecimal(i*mRate)
val toDouble = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).toDouble()
val ignore=" tools:ignore=\"MissingDefaultResource\""
val str="<dimen name=\"DIMEN_TEXT_${i}_SP\"$ignore>${toDouble}sp</dimen>\n"
outStr+=str
}
outStr+="</resources>"
try {
val file = File("dimens\\$folderName","$dimenFileName")
if (!file.parentFile.exists()){
file.parentFile.mkdirs()
}
val fileOutputStream = FileOutputStream(file)
val printStream = PrintStream(fileOutputStream)
printStream.print(outStr)
printStream.close()
}catch (e: IOException){
e.printStackTrace()
}
}
}
}
}
Android屏幕适配----放一段自动生成swxxdp适配dimens文件的代码(AS上也有类似插件)
最新推荐文章于 2024-04-22 11:04:23 发布