安卓点九图切法

点九图,是 Android 开发中用到的一种特殊格式的图片,文件名以”.9.png“命名。这种图片能告诉开发,图像哪一部分可以被拉伸,哪一部分不能被拉伸需要保持原有比列。运用点九图可以保证图片在不模糊变形的前提下做到自适应。点九图常用于对话框和聊天气泡背景图片中。

制作点九图有四个硬性要求,只要满足这四点,点九图就可以被正确识别。

要求一:
名称格式必须为:文件名称 .9.png。

要求二:
上下左右各留有 1px 的标识线区,此区内不能有半透明像素(特别注意:切图若有投影,不要泄漏到标识线区)。

要求三:
伸缩标识线与内间距标识线为不透明的纯黑色(#000000),光学标识线为不透明的纯红色(#ff0000)。

要求四:
点九图的特殊结构会导致其4个顶角处成为“绝对禁区”,这4个1像素×1像素的区域内不能有任何内容。

伸缩线详解

伸缩线标注了切图内的拉伸区域/收缩区域。一般来说点九图越小越好,因此通常切图尺寸都要小于控件尺寸,但这并不意味着不会出现切图尺寸大于控件尺寸的情况,在这种情况下,切图会根据伸缩线来进行缩小。

从实验的结果得到三个结论:
1.切图拉伸时,仅伸缩区会被拉伸。
2.切图收缩时,首先伸缩区会被收缩。
3.当伸缩区缩小到0之后,切图整体继续收缩(Android 4.3之前表现不同,谷歌公布的Android系统9月份的月度版本分布图数据显示4.3之前的机型占比不足7%,所以可忽略此情况)。

每个区域的拉伸/放缩长度与本区的伸缩标识线长度成正比。

内间距线详解

内间距线所标注的是控件的内间距,而不是点九图的内间距,所以,内间距线跟点九图本身并没有直接的联系。

1.横向内间距线的左端到切图左端的距离为控件的左侧内间距值;
2.横向内间距线的右端到切图右端的距离为控件的右侧内间距值。

例如,对话框是圆角,文字需要被包裹在其内,如果纵向显示内容区域顶到两遍,显示的效果会是如下图。


虽然内间距线也可以画为多段,但是系统只关心最左端最右端的位置,所以多段内间距线是没有任何意义的。

点九图中的内间距线,仅在代码中没有指定Padding属性的时候才会生效,但这不代表可以忽略点九图中的内间距线。我建议没有特殊要求, 点9图都带上内边距线, 避免写padding具体的数值.

视觉边界布局(Optical bounds layout)

是在Android 4.3(Api level 18)中引入的一种新的布局对齐方式。

光学边界也叫做视觉边界,下图是一个带有投影的蓝色按钮切图。在视觉上,此图形的外轮廓是蓝色按钮所占区域,而不是切图实际所占区域。光学边界线标注的位置为投影的位置,表示此区域在视觉上不可察觉。

对于那些有透明空白边的控件来说,使用视觉边界布局在显示效果上更加整齐。 不然的话,要保证每个控件的空白透明边都是一样的才能保证内容对齐。

边界对齐了

注意:

  1. 最外边的 1px 线段必须是纯黑色(#000000),一点点的半透明的像素都不可以有,比如说99%的黑色或者是1%的投影都不可以有。(这1PX 像素在程序最终输出的效果中不会被显示),光学标识线为不透明的纯红色(#ff0000)。
  2. 文件的后缀名必须是 .9.png,不能是 .png 或者是 .9.png.png,这样的命名都会导致编译失败。
  3. 点九图的特殊结构会导致其4个顶角处成为“绝对禁区”,这 4个 1像素×1 像素的区域内不能有任何内容。


  4. 站在安卓开发的角度, 如果是纯色背景建议放在 drawable-nodpi 下, 如果是非纯色, 例如有边框, 按照行业标准一套图, 图简便放在 drawable-xxhdpi 下, 在加载背景的时候系统会进行缩放, 如果有条件多套图就多套图。

.9图其他说明

.9图放置在不同 dpi 文件夹下的效果

注: 若.9图可以设置为本身不透明,看实际需要了。例如以下就没有设置为透明。

.9图放到 ldpi 的效果


和 xxdpi 的效果


参考

点九切图你知道怎么切吗?-UI 中国-专业用户体验设计平台
https://www.ui.cn/detail/285877.html

点九图完全解析<附官方工具>-UI 中国-专业用户体验设计平台
https://www.ui.cn/detail/290941.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容