书接上文 Android完美适配dimens.xml脚本后,今天给大家带来了本人最新开发的dimens适配插件。
接下来给大家介绍一下插件的基本使用,非常简单。
脚本下载地址

使用

一、安装插件

1.选择Preferences

2.Plugins–>Install plugin from disk…

3.选中dimens-conver.jar文件

4.Restart Android Studio

重启之后插件算是安装完成。
接下来看一看如何使用呢?
##二、插件使用
1、选择Tools ----》 Dimens Convert

2、在这里输入需要转换的数值

具体如何换算可以参考本人上一篇文章 Android完美适配dimens.xml脚本,这里就不详细介绍了

分类目录 ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi
密度(dpi) ~160 ~240 ~320 ~480 ~640 ~960
图片比例 1.5 2 3 4 6 8
倍数 0.75x 1x 1.5x 2x 3x 4x

3、输入生成的文件夹名称,会在该文件夹下生成dimens.xml文件

项目名称/app/src/main/res/输入的文件夹名称/dimens.xml

4、选择需要转换数值的dimens文件

5、就是这么简单成功了

让我们来看一下效果
6.效果展示

三、动态演示

原理

终于大公告成了,那么很多童鞋可能对插件开发充满了兴趣,其实被人也是刚起步,下面就将本人实现过程给大家Show一下。

第一步:

了解基本的AS插件开发,可以借鉴下面的文章,
AS插件开发 - 收藏集 - 掘金
类似的文章相当多,这里就不做详细叙述了。
不过这里有坑,
AS版本号一定好对应,可以参考文档:
Build Number Ranges
<idea-version since-build="141.0"/>

这里基础就不多说了,Google都是,有问题的小伙伴可以扫码右侧二维码,加入微信群,进行讨论,交流。

第二步:

步入正题,首先我们需要获取到用户想要转换的倍率和生成文件夹的名称,那么这里我们使用了InputDialog,代码如下,

private String askForResolution(Project project) {return Messages.showInputDialog(project,"请输入需要转换倍数", "Input Your Resolution",Messages.getQuestionIcon());}private String askForFileName(Project project) {return Messages.showInputDialog(project,"请输入新的文件夹名称?", "Input Your FileName",Messages.getQuestionIcon());}

我们将获取到的数值保存起来。

##第三步:
接下来我们需要获取到dimens原始文件,这里我们通过JFileChooser来获取文件,这里我们的类型是JFileChooser.FILES_ONLY只支持文件。
在这里我们可以得到文件路径和文件名称。

代码如下:
重点都已注释:

JFileChooser jfc = new JFileChooser();//只支持文件jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);jfc.showDialog(new JLabel(), "选择");File file = jfc.getSelectedFile();if (file.isFile()) {//获取文件名String getFileName = jfc.getSelectedFile().getName();String fileType = getFileName.substring(getFileName.lastIndexOf("."));if(fileType.equals(".xml")){//file.getAbsolutePath() 获取文件路径convert(project,file.getAbsolutePath(),resolution,fileName);}else {Messages.showMessageDialog(project,"选择的文件类型有误","失败",Messages.getQuestionIcon());}}

第四步

接下来就到了我们转换dimens文件了,这里是用的是java代码,上一篇文章也介绍过dimens转换的脚本,有问题的小伙伴可以先阅读上一篇文章。

直接上代码,原理非常简单,就是逐行替换,这里非常感谢BlackJ的支持,哈哈。
Blankj/AndroidUtilCode 友情链接。
下面的代码想必大家都能读懂,就不详细介绍了。

     //输入File xml = new File(absolutePath);//输出 原name+分辨率.xmlString newFilePath = absolutePath.substring(0, absolutePath.indexOf("/res/"));newFilePath = newFilePath + "/res/" + fileName + "/dimens.xml";System.out.println(newFilePath+"=====");File xmlOutput = new File(newFilePath);List<String> list = FileIOUtils.readFile2List(xml, "UTF-8");StringBuilder sb = new StringBuilder();for (int i = 0, len = list.size(); i < len; ++i) {String line = list.get(i);if (!line.contains("<dimen name=")) {sb.append(line);} else {int indexOfStart = line.indexOf('>');sb.append(line.substring(0, indexOfStart + 1));int indexOfEnd = line.lastIndexOf('<');int num = Integer.parseInt(line.substring(indexOfStart + 1, indexOfEnd - 2));String unit = line.substring(indexOfEnd - 2, indexOfEnd);String scaleString = String.valueOf((int) ((scale * num) + 0.5));sb.append(scaleString).append(line.substring(indexOfEnd - 2));}sb.append(LINE_SEP);}FileIOUtils.writeFileFromString(xmlOutput, sb.toString(), false);

到这里我们的开发流程就结束了,是不是非常简单,你也可以一试!!!

有问题的小伙伴扫码右侧二维码加群,讨论哦!!

脚本下载地址

源码GitHub地址:
https://github.com/libin7278/dimens-convert

扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~

公众号回复“资料获取”,获取更多干货哦~

有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码

打造AS酷炫dimens适配插件相关推荐

  1. 【有利可图网】PS实战教程52:巧用PS设计打造一个酷炫的喷溅海报特效!

    本篇教大家如何巧用PS设计打造一个酷炫的喷溅海报特效教学!教程主要是运用到了蒙版和笔刷技巧,学习掌握,可以灵活运用到其它设计中,感兴趣的童鞋赶快收走试试看,需转学起来吧!

  2. PS教程!教你打造超酷炫的德罗斯特效应

    编者按:从前有座山,山上有座庙,庙里有个-这类可以无限循环的东西在视觉里叫德罗斯特效应,非常有意思的效果,而且简单易学,今天折葵同学这篇教程不仅有给新手的超简单3步搞定法,而且有效果更酷炫的代码进阶版 ...

  3. 酷炫canvas粒子插件

    今天在github上发现了一个有趣的canvas插件,分享一下.(效果很华丽!0_0) 源码地址:https://github.com/VincentGarreau/particles.js **** ...

  4. 超酷炫粒子背景插件—particles.js

    GitHub-教程-下载 1)先到github中下载particles.js-master.zip,下载下来的文件中有一个demo案例. 2)将demo文件中的particles.min.js.sty ...

  5. 基于Vue封装酷炫进度条插件

    目录 效果如下: 源码: 效果如下: 源码: 新建script.js var script = {data() {return {clouds: 50,particles:300,particleAr ...

  6. FushionChart一个酷炫的图表插件

    FushionChart是一个关于图表的js插件.它能够把很多简单的图表用很酷很炫的方式显示在html中.它接受json,xml数据格式,我们只需要知道不同图表不同的数据格式就能够正确显示图表了.它操 ...

  7. 用代码打造超酷炫的粒子特效龙卷风,免费提供完整代码。

    是不是很炫酷?别着急嘛,下面就是代码. <html><head> <meta charset="utf-8"> <meta name=&q ...

  8. intelliJ idea酷炫代码特效插件

    鉴于CSDN肆无忌惮的广告,博客不再更新,更多动态请移步至个人网站:https://youyou-2608.com 1. 打开idea,File>Settings>Plugins 2. 输 ...

  9. 酷炫背景粒子插件particles.js星空背景使用示例源码 - 附演示及下载地址

    官方给的例子有点复杂,项目中一般就引一个 JS 文件然后调用好了,简单粗暴,网上很少有想要的效果,而且都没有源码,这里分享一个 文章目录 一.源码地址 二.实现效果 1. 电脑端 2. 手机端 三.源 ...

  10. 打造酷炫AndroidStudio插件

    转载请注明出处:[huachao1001的专栏:http://blog.csdn.net/huachao1001/article/details/53898286] 前面几篇文章学习了AndroidS ...

最新文章

  1. vue实用组件——页面公共头部
  2. 【AGC014E】Blue and Red Tree
  3. 怎样写出可维护的面向对象javascript(译)
  4. 走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧
  5. 极其实用的sql脚本【建议收藏】
  6. InfoComm China 2019,揭秘“NVIDIA风格”数据科学!
  7. DNS服务器之二:从服务器的实现
  8. Oracle中使用批处理文件批量建表
  9. Linux线程管理必备:互斥量与条件变量
  10. 深度解读旷视招股书:这557页带你看懂中国AI公司的生意经
  11. 服务器装不上无线网卡代码10,win10专业版无线网卡出现错误代码10怎么办?
  12. axure原型怎么让文字自动换行_蓝湖 for Mac(自动切图sketch插件)
  13. 江苏省各地级市58同城租房数据
  14. 怎么在PDF上进行修改文字
  15. 基于FPGA的SRIO的相关介绍和实现
  16. 在线教育有什么优势?
  17. MATLAB编程求解函数零点
  18. 严格对角化(Exact diagonalization)介绍
  19. Redis持久化有两种方式:快照持久化(RDB)和AOF
  20. 每日一句API接口,免费好用

热门文章

  1. Git:git同步git push时候提示filename too long解决办法
  2. LeetCode:每日一题(2020.4.6)
  3. Java一键多值Map 之Guava Multimap 用法简介
  4. 时间格式 asp.net
  5. 《A Sub-Pixel Edge Detector: an Implementation of the Canny/Devernay Algorithm》
  6. 基于图像的三维重建与基于三维点云数据的曲面拟合
  7. springcloud 服务调用的两种方式
  8. wso2 ei 6.4.0安装笔记
  9. react创建项目报错unexpected end of json while parsing near xxx
  10. 拉勾数据分析岗数据分析报告