关于”点九”

标签: 闲话杂谈 | 发表时间:2011-09-07 14:51 | 作者:yoko 冬眠
出处:http://mux.baidu.com

“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png

智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。

我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真。

OK,在android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示效果。

【普通拉伸和点九拉伸效果对比】

对比很明显,使用点九后,仍能保留图像的渐变质感,和圆角的精细度。

从中我们也可以理解为什么叫“点九PNG”,其实相当于把一张png图分成了9个部分(九宫格),分别为4个角,4条边,以及一个中间区域,4个角是不做拉升的,所以还能一直保持圆角的清晰状态,而2条水 平边和垂直边分别只做水平和垂直拉伸,所以不会出现边会被拉粗的情况,只有中间用黑线指定的区域做拉伸。结果是图片不会走样

二.“点九”的制作方法

方法1:使用 “draw9patch”工具绘制,流程如下

1.  安装工具

首先你需要给自己的电脑安装上java于系统的默认目录下。没有安装java的同学可以在百度搜索:jdk-6u20-windows-i586,安装包大小80M左右。

然后使用andriod模拟器—android-sdk-windows,打开SDK/tools目录下的“draw9patch.bat”文件,出现载入窗口:

2.导入并编辑

将png图片拖拽到该窗口中

如下图,自动进入编辑界面。图中介绍了每个区域的内容及功能注释。

预览右侧的视图发现,图片的边缘处于普通拉伸状态。

现在我们在图片边缘点击左键,绘制出黑线,即图片需要被拉伸的部分。如下图,对4条黑线做了注释。

如果失误多绘的部分,可按住shift键的同时点击鼠标左键擦除)。

如图所见,三种拉伸结果均已完美显示,已实现我们想要的拉伸效果,假设这是一个有显示文字的窗体,那么文字显示的区域,程序也会控制在黑线对应范围。

以下这些图片,包括异性(非规则图形)图片,也可以通过点九PNG实现横纵向的自然拉伸。

【draw9patch.bat其他功能说明】

②   Show lock:显示不可绘区域

② Show patches:预览这个绘图区中的可延伸宫格(粉红色代表一个可延伸区域)

③ Show patches:预览视图中的高亮区域(紫色区域)

④ Show bad patches:在宫格区域四周增加一个红色边界,这可能会在图像被延伸时产生人工痕迹。如果你消除所有的坏宫格,延伸视图的视觉一致性将得到维护。

3.保存和输出

点击左上file- save,保存文件,自动生成一张后缀名为“*.9.png”格式的图片,图片上下左右各增加了1px的黑线。

方法2:直接使用 PS等平面工具绘制,流程图如下

如流程图所示,相对与方法1,只需2个步骤就可得到.9.png图片,具体步骤为:

1.  确定切图后直接改变图片的画布大小,

2.  手动将上下左右各增加1px

3.  使用铅笔工具,手动绘制拉伸区域,色值必须为黑色(#000000)。

4.  存储为web所用格式,选择png-24,储存时手动将后缀名改为.9.png

不过这种方法的缺点是不能实时预览,判断并测试拉伸区域的准确性。

使用此方法需要注意以下2点:

1. 手绘的黑线拉伸区必须是#000000,透明度100%,并且图像四边不能出现半透明像素;

2. 你的.9.png必须绘有拉伸区域的黑线;

否则,图片不会通过android系统编译,导致程序报错。还有,有同学疑惑解压缩apk文件后,.9.png图片里的黑线怎么没了?

那是因为andriod程序在把文件打包成apk的时候,程序会自动把*.9.png图片边缘的黑线去掉,所以解压缩apk后看到的.9.png文件是没有黑线的。

三.使用“点九”的意义

关于下图,经过测试发现使用普通png的显示效果出现明显的变色横纹。而.9.png图片的显示效果明显优于普通png。

使用.9.png格式后,横纹问题基本已解决。因为对于.9.png图片,android系统程序有对其优化的算法。

由于android手机屏幕的材质质量差距大。很多屏幕不支持16位以上的颜色显示。

所以渲染后结果出现丢失颜色,故造成横纹显示。

经与多款android手机对比后发现,屏幕越次的手机横纹越明显。

而使用了*.9.png图片技术后,只需要采用一套界面切图去适配不同的分辨率,而且大幅减少安装包的大小。而且这样程序不需要专门做处理的就可以实现其拉伸,也减少了代码量和开发工作量。

相信每个人android平台的切图工作,会有不同的技巧和心得,非常欢迎大家能在评论中留下自己的个人经验及心得。相互交流会让我们的工作模式更灵活,更高效,同时带给大家更多优质的移动端应用:)

转载请注明出自”百度MUX”

相关 [闲话杂谈 ] 推荐:

四格漫画《MUXing》——坏习惯

- 钦源 - 百度MUX
每个人都有这样那样的坏习惯…….

关于”点九”

- 冬眠 - 百度MUX
“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png. 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形. 我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真.

聊聊减少页面跳转的方法

- - 百度MUX
在标签页还没有诞生的时候, 浏览器对关键词的搜索似乎只能另起窗口显示搜索结果. 且这些结果页散乱无序,假若再返回某一页面,就要从桌面一堆窗口里或者一长串任务栏内去翻找,相信现在用惯有标签页浏览器的同学,应该没有谁会愿意再去用这样的产品. 这是一个典型的页面跳转例子,并且散乱无序是用户很头痛的事情. 在用户对操作体验越来越重视的今天,让用户无形中享受我们精心设计的操作体验越发显的重要.

2012年移动应用十大设计趋势

- - 百度MUX
2011年涌现出诸多优秀设计,随着操作系统的更新和硬件性能的提升,用户对移动应用的品质需求也呈现上升趋势,界面设计又被提升到一个新的高度. 移动应用不再是将内容从互联网搬至移动设备,而是解决设备本身的问题,根据用户需求从视觉感受、风格趋势、操作方式、信息架构和内容呈现等各个方面挖掘设计的可能性,为用户带来新颖的体验.

掌上指路标 —– APP架构与导航设计

- - 百度MUX
一款小小的手机应用,却包罗万象,融合这复杂的信息内容或功能逻辑. 要让用户在使用中获得最好的体验,迅速掌握应用的框架结构,其导航的设计是一个重要的环节. 手机应用的导航和现实世界中的路标或者地图的作用很类似. 它是应用软件的虚拟框架,对用户具有指示标识以及识别的功能. 比如,如同路标,导航能在使用中,定位用户当前在哪儿,为用户突出当前视图重要的功能,告知用户可以去哪儿,在不同的视图和区域迅速地切换信息,记录使用的操作轨迹防止用户迷失等.

创建令人兴奋和不寻常的视觉层次

- - 百度MUX
印刷和屏幕布局,是平面设计的最重要的方面之一. 跨过多个页面或屏幕的设计,无论类型的或大或小,必须是吸引人的,并容易为所有人接受的方式. 为此我们不得不考虑的一个重要方面——控制视觉层次的设计. 在这篇文章中,我们将着眼于怎样把不同类型分解成不同的层次,如重要性和语音语调等. 我们将探索如何依靠这几件事情,可以实现不同视觉质感和色调.

体验新版Apple AppStore ——App设计从业人员必读

- - 百度MUX
· Apple 开发者向 iOS App Store 提交的应用数量突破100万款大关. ·有 4 亿用户注册了Apple ID,一共下载了350亿次应用. 上面由Appfire提供的最新监控和统计数据,由数据看来, 苹果开放的App store模式是乔布斯时代最成功的商业模式,不仅成就了他今天的辉煌,同时也带动了手机类App的发展.

【译】建立属于你的个人高效系统——效率专家 Mike Vardy 教你如何设置一个简单的个人高效系统

- - 百度MUX
已经有太多的高效系统供人使用,而对于那些刚刚开始,想寻求更好方法完成他们任务,项目,目标的人来说,要做一个高效系统却是相当艰巨. 这篇文章将告诉你怎样设置一个简单的个人高效系统,让你在投入时间小的情况下通过一些简单的工具准备获得多的回馈. 步骤1
:确定用纸还是用数码. 为了确定怎样的系统对你来说是最有用的,你需要知道你自己是更倾向于用纸做计划还是能通过一些数字工具帮你管理任务和时间.

创新其实很容易

- - 百度MUX
创新区分了领袖和众人-乔布斯. 移动互联网时代,各式的app如决堤之潮般汹涌而出,与此同时创新的交互体验也被提到风口浪尖. 若无创新,你的app很快就会被淹没,不会为用户所记忆或使用. 移动产品的交互设计师如不具备创新意识,不去探寻新的交互体验模式,则将沦为成功交互模式的临摹者. 然而创新的灵感来自何处,面对海量的相似app你是否会觉得创意枯竭.

论Web App、Hybrid App、Native App设计差异

- - 百度MUX
目前主流应用程序大体分为三类:Web App、Hybrid App、 Native App. 一、Web App、Hybrid App、Native App 纵向对比. 首先,我们来看看什么是 Web App、Hybrid App、 Native App. Web App 指采用Html5语言写出的App,不需要下载安装.