大家好,
这教程本来打算上次发
M9
的皮肤的时候就发的。
后来在反编译的时候出了问
题,
不得不搁浅了。
胎死腹中啊。
这次重新找了一个工具,
终于解决了
9.png
的图片的问题。
说说本人的近况:
手机终于拿回来了。苍天啊„„内牛满面当中。
最近新学到了许多东西,美化又有了新进展„„
介绍一下这次教程的情况:
以前的那几集教程只能算是基本的替换图片吧,懂点
IT
知识的人应该都会。这次就比
较繁琐了,涉及到了编译,反编译,
SDK
的安装,
9.png
的修改。挺麻烦的。主要是工作量
大,
替换图片的话只要复制加粘贴就
OK
了,
但是要涉及到分辨率的修改可不是那么简单了。
想详细了解如何定制
UI
的话就接着往下看吧!
这次更新的教程比较繁琐,有以下几点要求:
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
的样本文件夹了。
打开【样本】
。找到这个相应的图片。选中它,在屏幕的左下角你能看到这张图片的一