.9.PNG是啥?

用户头像
临沂/UI设计师/8年前/573浏览
.9.PNG是啥?

点九切图要怎么切呢?

(写在开始:介绍点九切图的文章有很多,我只能说献丑了,如有不当之处,请随时批评指正,谢谢!)


Hi,亲爱的设计师:


今天,是你2018年上班的第二天,怎么样?是不是精神饱满,干劲十足呢?我们总会是在新一年的开始,给上一年画上一个句号,不管是不是圆满。生活嘛,总是要从新开始的。


今天,有朋友问了一个问题:点九切图要怎么切呢?我明白原理,可是怎么切法确实有些不明白。

点九(.9.PNG),对UI设计师来说,不常用到,但用到的时候却是很重要。


刚入行时,开发那边就告诉我:这个图,你要用点九来切。嗯,点九,啥是点九?我在开发那边不好意思问,点点头:“没问题”。


然后赶紧回来X度,介绍的不少,可是还是看的稀里糊涂的。按照网上说的方法切、切、切,完了自信的交给开发。开发用怀疑的口吻问我:不行啊,你是不是切的不对啊,你看,这、这,还有这都变形了。


额,.9.png,你真的好烦人啊!


点九,具体是个什么东西呢?咳咳,这个嘛,这个......它是Android系统特有的一种图片格式,文件扩展名为.9.PNG。废话,要是IOS有,负责IOS的开发不早告诉我了!(一脸的不屑!)


1.什么情况下可以用到点九图呢?


我们先来看一个例子,这里是一个圆角矩形:


undefined

(这张图片不是我做的)


因为Android有太多的分辨率了,当圆角矩形控件在被拉伸放大的时候,圆角的部分就会出现模糊的情况。而点九切图就不同,它可以保证不管你上下还是左右拉伸,放大都可以保持原有的清晰度。


而且,你仔细比较一下,会发现:普通的拉伸效果,圆角部分也跟着变大了;点九下的效果圆角部分,原来是多大就还是原来的样子。


(呼,解释还真累人~)


2.点九切图的原理是什么?


点九,就是将图片横向和纵向随意进行拉伸,却可以保留像素的精细度、渐变质感和圆角的大小不发生变化,以实现多分辨率下的完美显示效果。


九宫格,你肯定知道,就是把一张图片,分成九个部分:4个角落、4个边和1个中心部分。


undefined

(这张图片不是我做的)


我们在微博当中发的图片,就是九宫格样式的。


同样的道理,点九切图法,就是相当于把一张png图分成了9个部分(九宫格)。这样就可以保证在不同的分辨率下,以及在界面改变方向后,界面上的图形不会因为长宽的变化而产生拉伸,造成图形的失真变形。


(还是不明白!)


盖房子的你知道吧?你要盖一座房子,不对,是已经盖好了。但是现在你觉得小了点,想再宽一点,再长一点,你怎么办?


A.全部拆了重新盖;

B.我只拆四个角,然后延长,再把四个角按照原来的样子重新垒好。


你选哪个?当然是B了。


现在,你盖的房子更宽了,也更长了,四个角的大小变了吗?除了位置,大小还是原来的样子。你只不过是把中间的部分增加了而已。


(这样好理解了吗?)


那么,通过上面的例子,我们大体知道了:哪里是可以拉伸的,哪里是不需要拉伸的?

你可以把这个当做一个俯瞰下的房子。


(1)1.3.7.9这四个部分,是屋角,要保持原来的样子,所以是不拉伸的;

(2)5,这一部分是房子的里面,放东西和住人的,要随着长宽的变化而变化的,身不由己,没办法;

(3)2.4.6.8这四个部分,是四面墙,是可以拉伸的。前面说的就是这部分的变化。(它们的拉伸,就相当于是5这块被拉伸了。)


那具体我们可以总结为:圆角(不需要拉伸)、除了圆角之外的边(需要拉伸)。


(噗~~~我有点缺氧!)


3.怎样操作?


我们以对话框举例说明:

首先,我们简化一下切图文件,“点九”图片拉伸1个像素与拉伸10个像素效果上是没有区别的,所以尽量缩小图片的尺寸。

在这里,我标注了每一部分是什么:


(1)1和2是横向和纵向拉伸的区域;


(2)3和4是内容在横向和纵向要显示的区域。


你可以看到,上下左右都有一个黑色的线段。


你要问了,那个对话框凸出来的那个角怎么办的呢?


首先,它跟圆角一样,是不能被拉伸的(要不就变形了)这点你要记住了。你看到我画的线段2了吗?标线2的上端的开始,正好是那个角的下端。也就是说,我纵向拉伸的区域,是不包括那个角的。


你在看右边的4,为什么涵盖了三角呢?4是什么?是纵向显示的内容区域,也就是说,如果你在里面写一段话,纵向上扩展,向上我可以扩到三角的那个位置(当然,你也可以选择不可以,看你的排版,如果觉得好看的话!)。


你还需要注意:


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

(2)黑线1和3的高度必须是1px,2和4的宽度必须是1px.

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


4.显示内容区域的标注有什么意义呢?


你可能会问:我拉伸四个边,只需要标注两个边就可以了呀,就是1和2,也就是上和左的位置,下和右不就同时拉伸了吗?我再标下和右(3和4)没有什么意义了呀?


上面我们也提到了这个,那再我给你举个例子:


在这里,你会看到,当你标注了内容显示的区域(下和右位置)的时候,即便做了拉伸,文字也会保持在这个区域内。而如果你没有标注内容显示区域的时候,就会使这样子:

错误的标注方式会让排版看起来很混乱。所以我们需要修正内容区域的线段位置和长度。


把横向的内容区域缩短到圆角以内,纵向的内容区域控制在输入框的高度以内,这样文字就可以正常显示了。


5.我可以使用什么工具切出来呢?


嗯,有很多种方式可以输出.9.png。


(1)使用draw9patch.bat这个点九切图工具;

(2)使用cutterman插件

(3)自己动手,丰衣足食:用photoshop直接输出。


在这里要提醒一下:如果你用插件来切图,有的时候开发那边是用不了。最好还是,你自己动手,在PS里切出来。


对于使用draw9patch.bat和插件来切图,我在这里不做过多的介绍,如果你想了解,可以X度。


我们主要讲一下自己动手,丰衣足食(在PS里怎样操作)?


(1)你先输出普通的png文件,用选区工具选取尽可能多的拉升部分加以删除,也就是说,可有可无的部分,就是无。(节省资源吗~浪费是可耻的,也是毫无意义的呀!)


undefined


(2)然后,把剩下的这些可有的内容拼成一个整体。


undefined


(3)把画布上下左右各扩大1各像素。


undefined


(4)用一个像素的铅笔工具(颜色选择纯黑色),上下左右分别画黑色线段就可以了。(你要注意圆角部分,你的文字内容区域部分......)


undefined


(5)最后,保存为.9.PNG格式的文件就可以了。注意别保存错了格式。


undefined

最后,还是要提醒一下你:1px线段必须是纯黑色(#000000),一点点的半透明都不可以有(你所标注的黑色线段,在程序最终输出的效果中不会被显示,请放心)。


(是不是很容易呢?哎呀,我有点小得意,哈哈~)


6.最后一个问题:有阴影怎么办?


对于有阴影的的控件,如果你不考虑阴影,往往会造成一些错误,比如文字的排版和预想的不一致。


undefined

你会看到(什么?你看不到?拜托,可以放大下吗?),原本居中的文字,在实际开发过程中向下移动了。这是因为我们画点九的时候,把投影的高度也画进去了,所以视觉上文字就偏下了。


所以:切图时,内容显示区域的高度要避开投影区域,这样可以保证文字视觉的居中。


写在最后:


合理的运用“点九”切图,会给你和安卓开发人员带来很多的方便,而且还可以大幅的减少资源的大小。


对于点九切图,不要觉得它很麻烦,其实当你真的上手一遍的时候,会发现它很简单!不管你怎样去做,都可以去尝试,探求更省时省力的办法。


好了,不多说了。希望写给设计的这篇文章对你有一点点的帮助。


哦,对了,如果你想下载点九切图工具Draw9patch,可以在公众号写给设计里回复“点9”就好了(本想在这里上传,但是有点大~)。


6
阅读原文
|
举报
|
14
分享
评论
用户头像
评论你的想法~
表情
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
APP/小程序商业项目UI模板|99个高保真UI+79个原型
【新年UI图标】影音icon
【新年UI图标】体育icon
3D渐变流体抽象矢量UI背景图
盲盒APP UI设计
我的钱包-UI界面设计-app
【新年UI图标】积分icon
拟物风质感写实UI卡片合集源文件
【新年UI图标】珠宝icon
科技医疗透明柜UI界面设计
UI通用设计素材1
UI界面 组件
【新年UI图标】30个图标
【新年UI图标】活动icon
原创UIUX交互橙红渐变炫酷视觉平面设计作品集模板PSD
高级表盘系列UI源文件
3D卡通UI界面图标可爱插画免扣素
钱包ui模板
高级感金属拟物 UI设计组件库
户外旅行飞机情侣假日出行
Security Camera UI kit
智能家居中心 简约 UI设计组件库
手表表盘UI系列
你可能喜欢
大家都在看
登录注册