- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PNG图片处理方法
非原创,原作者见谅
介绍一下这次教程的情况:
1.要会反编译。【反编译用的工具是apktool,大家可以论坛有哪些信誉好的足球投注网站一下,到处都是教程的】
2.电脑上得装有android SDK。【其实只要SDK目录下tools中的draw9patch工具,处理nine-patch图片的时候必须的。不想装SDK的同学百度一下draw9patch应该有的下载的。】
3.还需要足够的耐心。【机械般的重复动作比较多】
大家可以先把framework-res.apk反编译过来,然后定位到res\drawable-mdpi这个文件夹看看。打开之后你是不是发现里面的图片和以往图片有所不同呢?
没错,反编译之后的图片也和xml一样现出原形了,一些需要拉伸的图片四周都多了一个像素的边框,带了一条黑线。这就是android UI 独特的图片格式*.9.png。它独特在哪呢?就是因为他有拉伸的特性。
比如普通的一个短信输入框,你发现他横屏和竖屏的情况下分辨率绝对是不同的,但是我可以很负责任的告诉你,两个框的图片却是同一张。但它却没有出现拉伸错误的现象,这就是*.9.png的威力了。
具体理解可以看看下面
图一为nine-patch图片拉伸的原理图,原始的nine-patch图片是在四个方向都有黑条的,黑条的宽度为一个像素,颜色为纯黑(RGB=000000)。编译后,黑条自动消失。上方和左方的黑条分别是横向和纵向的拉伸区域(用灰色强调了),如要横向拉升图片,将只会拉伸灰色区域。反之,如果只是普通图片,拉伸将会出现严重的失真(如图二)。
而下方和右方则分别表示内容的显示区域(也可以没有这两个内容区域横条,不影响一般使用效果)。
图一
图二
下图就是android的SDK里面的nine-patch处理工具示意。
看了图片相信你就明白了,为什么自己用普通图形处理软件处理的图片放到手机上面的时候会拉伸不正常,导致修改失败。那是因为你没有经过特殊处理,直接用*.png格式的图片,当然会拉伸不正常。
好了,情况描述完毕了,我们进入教程。
如何将普通的*.png格式图片改成*.9.png格式?
步骤一:
提取样本和素材
先将一个有着官方UI的framework-res.apk反编译,得到反编译的文件。
将res/drawable-mdpi提取出来。将这个文件夹改成【样本】当然你也可以改成自己的,我选择改成样本是因为自己看着方便,下面的文件夹也一样,随便改,自己看着方便就行。
接着将你要处理的有定制UI的framework-res.apk也反编译,同样,将res/drawable-mdpi(不一定是这个文件夹,也有可能是其他文件夹,都在隔壁,打开看看就知道了)复制出来,将这个文件夹改成【素材】。
这个我建议,大家把普通的png图片和9.png图片分开放。这样方便修改些。这是我连续处理了将近4000个图标出来的经验……全是自己手动一个个修改【含泪当中】
我就是将这些文件分别放入了【png素材】【9.png素材】【png样本】【9.png样本】这些文件再你处理好了之后就无用了。咱们只要成品。
文件准备好,打开图像处理软件。
这里我推荐使用【Paint.NET】。为什么?因为PS有些图片处理不了。看看下面的图大家就知道了。
相同图片打开之后却是两个结果,要问我是什么原因,我也不知道,我也给这个问题困扰过好久,后来还是在黑人的推荐下用了Paint.NET,才解决了这个问题。
好了,咱们接着讲……
这里我以一个下拉的nine-patch格式的图标为例,给大家讲解。普通的png就不详细讲了。这都不会就不要往下看了哈。
首先打开要处理的图片。
打开之后需要修改分辨率。
按Ctrl+R弹出对话框。
这个时候就可以修改分辨率了。
现在就用的到刚刚提取出来的官方UI的样本文件夹了。
打开【样本】。找到这个相应的图片。选中它,在屏幕的左下角你能看到这张图片的一些信息,我们要的分辨率就在下面。
看图:
接着我们就可以将样本中的图片的分辨率输入到NET上面,将大分辨率的图片修改成一样的了。
虽然通过修改分辨率之后的图片的格式还是*.9.png,而且缩略图上面也显示还有四周的黑线在。不要以为那张图片还是原来的,实际上里面的黑框已经不在了,需要重新给它弄上去。可以用SDK里面处理图形的工具打开看一看,你会发现里面的拉伸效果实际上已经没有了,我们要自己重新处理过。
上面教大家将分辨率修改好了,下面咱们说说如何处理*.9.png。
这才是重头戏。
首先,打开android SDK下的tools中的draw9patch.bat。【关于SDK的安装百度一下,很
文档评论(0)