使用Python做起工具来还真是爽,简单,方便,快捷。今天忙活了一下,制作出一个比较实用的小工具。

自动化套图制作,适配不同屏幕

尤其是对于android开发来说,要适配不同屏幕就需要多套切图,那么。这款工具将让你脱离切图的苦海,拥抱愉快开发的怀抱。


编程之禅

这次的工具制作,可谓是煞费苦心了。我尝试着让自己处于一个用户的角度,来思考整个流程的实现,最终得到了一个比较不错的结论。

less operations, more goods

所以,基本上来说,我隐藏了底层实现的很多的细节。

怎么使用?

这个工具使用起来也是相当的简单的。如下:

因为这个工具是基于Python2.7开发的,所以需要有Python环境的支持。

  • 第一步:任意找到一个文件夹

python ImageGenerate.py init

来执行初始化工作目录的工作,执行结束后,我们会发现当前文件夹下多了几个目录。下面详细介绍一下:

  • 第二步:在modules目录下的cfg.txt文件中写上如下类型的数据:
1080x1920
1128x1920
423x800
480x800
552x1024
600x1024
720x1024
736x1280
752x1280

再次执行

python ImageGenerate.py init

就可以看到下面的文件结构:

E:\Code\Python\DataStructor\release>tree
卷 文档 的文件夹 PATH 列表
卷序列号为 0000-4823
E:.
├─destination     用于存放生成的不同的屏幕适配图片
│  ├─1080x1920
│  ├─1128x1920
│  ├─423x800
│  ├─480x800
│  ├─552x1024
│  ├─600x1024
│  ├─720x1024
│  ├─736x1280
│  └─752x1280
├─modules           存放配置文件,也即是分辨率方案,待会详谈
└─source            标准的美工图片1080*1920分辨率即可,将作为我们的图片生成参考
  • 第三步,批量生成:在source文件夹下面放置要生成套图的标准图片即可,任意张数

python ImageGenerate.py generate

该命令的工作原理是,根据source文件夹下列出的标准图片,来生成不同分辨率的匹配图,且给予良好的命名规范,便于用户使用。

结果如下:

E:.
│  ImageGenerate.py
│
├─destination
│  ├─1080x1920
│  │      beauty-1080x1920.png
│  │      resize-1080x1920.png
│  │
│  ├─1128x1920
│  │      beauty-1128x1920.png
│  │      resize-1128x1920.png
│  │
│  ├─423x800
│  │      beauty-423x800.png
│  │      resize-423x800.png
│  │
│  ├─480x800
│  │      beauty-480x800.png
│  │      resize-480x800.png
│  │
│  ├─552x1024
│  │      beauty-552x1024.png
│  │      resize-552x1024.png
│  │
│  ├─600x1024
│  │      beauty-600x1024.png
│  │      resize-600x1024.png
│  │
│  ├─720x1024
│  │      beauty-720x1024.png
│  │      resize-720x1024.png
│  │
│  ├─736x1280
│  │      beauty-736x1280.png
│  │      resize-736x1280.png
│  │
│  └─752x1280
│          beauty-752x1280.png
│          resize-752x1280.png
│
├─modules
│      cfg.txt
│
└─source
        beauty.png
        resize.png

拓展

为了支持更多的屏幕适配方案,本工具特地使用了配置文件来维护,也就是modules/cfg.txt文件。

注意:

以字典顺序书写width*height格式,如:


1080x1920
1128x1920
423x800
480x800
552x1024
600x1024
720x1024
736x1280
752x1280

好了,就是这样了。源码也已经上传到GitHub,如果你对这个小工具也很感兴趣,可以和我取得联系。

:-)

Python 制作Android开发 所需的适配不同分辨率的套图的更多相关文章

  1. 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。

    AndroidDevTools Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具.An ...

  2. Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式

    Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...

  3. Python音视频开发:消除抖音短视频Logo的图形化工具实现

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现 ...

  4. Android 开发中的屏幕适配技术详解

    本文主要介绍Android开发中比较头疼繁琐的一个问题-屏幕适配问题.主要从适配原因.基本核心概念.适配方法等方面介详细 介绍从而是的深入或者进一步对Android屏幕适配技术的掌握和理解. 真题园网 ...

  5. Python进行Android开发步骤

    移动应用开发 1. 建立开发环境 下载软件开发包(SDK):        http://developer.android.com/sdk/index.html        adt-bundle- ...

  6. Android - 开发页面需了解的dip,sp,px知识,以及它们的转换

    工作中,时常会有任务要求开发新页面,这时一般的流程是产品经理确定要开发的页面和功能,然后设计师提供设计稿,之后由我们开发人员完成开发工作. 通常,设计师提供的设计稿尺寸标注会很详细,例如涉及到字时,字 ...

  7. Android开发 所需组件配置

    1 Unity中的Android Build Support下载 在Unity中的File>Building Settings>Android>Open Download Page, ...

  8. Android开发学习之路-自定义控件(天气趋势折线图)

    之前写了个天气APP,带4天预报和5天历史信息.所以想着要不要加一个折线图来显示一下天气变化趋势,难得有空,就写了一下,这里做些记录,脑袋不好使容易忘事. 先放一下效果: 控件内容比较简单,就是一个普 ...

  9. Android开发 获取视频中的信息(例如预览图或视频时长) MediaMetadataRetriever媒体元数据检索器

    前言 在Android里获取视频的信息主要依靠MediaMetadataRetriever实现 获取最佳视频预览图 所谓的最佳就是MediaMetadataRetriever自己计算的 /** * 获 ...

随机推荐

  1. 使用 Cesium 动态加载 GeoJSON 数据

    前言 需求是这样的,我需要在地图中显示 08 年到现在的地震情况,地震都是发生在具体的时间点的,那么问题就来了,如何实现地震情况按照时间动态渲染而不是一次全部加载出来. 一. 方案分析 这里面牵扯到两 ...

  2. VINS 估计器之结构初始化

    为什么要初始化 非线性VINS估计器的性能对于初始的速度,尺度,重力向量,空间点3D位置,以及外参等非常敏感.在很多场合中,能做到相机和IMU即插即用,线上自动校准与初始化,将会给用户带来极大的方便性 ...

  3. [ZJOI2010]基站选址

    题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄不超过Si的范 ...

  4. 【USACO Feb 2014】Cow Decathlon

    题目描述 约翰有 N 头奶牛,组成了一直队伍参加全能比赛.比赛一共有 N 项,每头奶牛必须参加一项比 赛,每项比赛也必须有一头奶牛参加.任何一头奶牛可以胜任任何一项比赛,但得分不一样.如果第 i 头奶 ...

  5. 服务器使用nginx做代理,通过HttpServletRequest获取请求用户真实IP地址

    首先,在nginx配置中添加如下配置 server { listen ; server_name www.wenki.info; #要访问的域名 charset utf8; location / { ...

  6. urllib,request 设置代理

     通常防止爬虫被反主要有以下几个策略: 1.动态设置User-Agent(随机切换User-Agent,模拟不同用户的浏览器信息) 2.使用IP地址池:VPN和代理IP,现在大部分网站都是根据IP来b ...

  7. js 在iframe子页面获取父页面元素,或在父页面 获取iframe子页面的元素的几种方式

    用JS或jquery访问页面内的iframe,兼容IE/FF 注意:框架内的页面是不能跨域的! 假设有两个页面,在相同域下. index.html 文件内含有一个iframe: XML/HTML代码 ...

  8. String 类

    一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创建 ...

  9. android高德地图网络路径实现自定义marker并点击弹出自定义窗口

    android中使用地图的地方随处可见,今天记录一下网络路径生成自定义marker,点击标记弹出自定义的窗口(在这里使用的是高德地图) 在这里我们使用Grilde去加载网络图片,因为这个简直太方便了! ...

  10. 三种方法,刷新 Android 的 MediaStore!让你保存的图片立即出现在相册里!

    公众号原标题:测试:"系统相册里怎么看不到我刚保存的图片,是我操作不对吗?" 一.序 Hi,大家好,我是承香墨影! App 内,创建一个文件并保存文件到本地的需求,是很常见的 I/ ...