Android .9图

1.点九图Nine Patch Drawable Grahpic

点九图是安卓独有的切图格式,主要针对界面中所有可拉伸的圆角矩形。它的用处就是用于拉伸切图的。

比如开发提示气泡时,要求气泡随着用户输入文本的长短或者终端屏幕的尺寸大小,产生长度、高度的自由变化,但是气泡本身并不失真。这是因为拉伸动作只存在于四个圆角外的部分,所以不论输入多少文本、横屏竖屏、手机还是平板,都可以很好得自适应。

 

.9图的优势:

.9图可以进行拉伸,如水平、竖直方向的延长,而清晰度不变;

令一张图片实现多种拉伸效果,减少UI切图的使用,降低包体积。

 

2.点九图的原理

比如这个切图:

a9ce50485673495980be657804650b94.png

 如果它需要纵向拉伸,直接拉会变成下面这个样子:

ce592b451825430ca6cd056f12334040.png

 而使用点九图就可以让切图局部拉伸,而不是整体拉伸,这样就把容易变形的地方保护起来:

834967acb4b5446eb04b5ec6c79e3e6a.png

 点九图最大的原则就是系统只认#000000的纯黑线或者点,还有就是四个边的四条线,左上两条线掌管可拉伸区域,右下两条线掌管内容显示区:

e6550be3d7d44d8b9560a387b843cdc1.png

 左上两条线原理是一样的,所以拿左边这条线举例,如果没有左边那条黑线时,纵向拉伸是这样的:

b56e3ae0ee0446829f19d39238290c1c.png

发现这时候圆角变形了,如果左边加一条黑线,就相当于把原来的图形分为三个部分:

8289a97d56a04be6af7d3008b5ad74ef.png

 当再次纵向拉伸的时候,只有标记了黑线的部分可以被拉伸,而上下两部分是完好无损的,想象一下,无论拉伸到多高,都不会变形了:

26df52434b0045d7a494d0c9e091b448.png

 当然,左边只画一个点也可以起到相同的效果:

1a15d510b6a0422e8f7b34c62607844e.png

左边这条线是控制纵向拉伸的,上面那条黑线就是控制横向拉伸的,原理是一样的。

 

接下来看右下两条线,是控制内容区域的。拿右边那条线来举例,如果没有右边那条黑线,在这个切图上输入内容,比如文字,是没有限制的,内容会撑满整个背景图:

ffefcd3f821144e5baea537e44438d77.png

当有了右边那条黑线后,切图相当于在纵向上又被分开了:

61e13e3e7419451cadb9924114668193.png

而这次是右边有黑线,而且右边的黑线是控制显示区域的,所以只有带黑线的部分才可以显示内容:

80418d968abb47cc98c1aab86acc163c.png

 当然,文字不会这样被切断一半显示的,这里只是方便大家观看哪里可以显示内容。

同样的原理,当下面画一条线后,横向上也是只有带黑线的部分可以显示内容(红线是辅助示意的):

ffccd18fba0b4514add584265ab3094f.png

 这就是点九的基本原理了。

 

注意:

①每条边画满黑线=没画黑线,就相当于没有起到保护作用。

②黑线或黑点一定是纯黑#000000

③左上两条线控制拉伸区,右下两条线控制内容区。

④输出的图片后缀必须是「.9.png」。

 

3.使用举例

如下面这个气泡框:

4780870284164385b72220660e281f99.png

 这个气泡框纵向和横向都需要拉伸,如果直接拉伸,效果如下:

6bcfcfd97b7647caa0c182409e11a851.png

 发现气泡框拉伸的时候,不仅要保护圆角,还要保护冒出来的“尖角”,所以在左边和上面画黑线时,一定要把圆角和三角的区域空出来:

bc730ceb119b497da2f4e34e34cd95fe.png

 这样圆角和小尖角就被保护了。

然后看内容区域,就是绿色为显示区域:

5b8ab1178ed14802952574546c6c78a3.png

所以把显示区域画上黑线,注意画在下面和右面,因为右侧和下侧是掌管显示区域的,最后切图如下:

0c9101c7463140669da0c8ab1c50dfb6.png

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值