.9图控制内容区域

前言

点9图示一种可伸缩的位图,如果你某个View用了点9图做background,Android会根据点9图的设置来自动为你调整、适应内容。点9图是标准的PNG格式图像,被一圈1像素宽的边缘包围,并且保存的时候扩展名一定要是“.9.png”,还要保存在“res/drawable/”目录。
以上的官方对点9图的介绍。

简单使用:

图4
图5

图4是一个比较常见点9图的使用,用这张点9图做控件背景,控件会根据左边点区域(图4的点1)和上边点区域(图4的点2)做纵向和横向的拉伸,拉伸后如图5的效果。这也是我们使用比较多的情况。
但接下来我要讲的不是点9图自动拉伸的使用,而是讲如何用点9图来控制内容显示区域。

问题

Button

相信很多人在开发过程中都有遇到过这样的问题,设计切了一张下面带阴影效果的Button背景图,如果直接拿来设置Background,当设置文本时用android:gravity="center",你会发现文案会在背景偏下方的位置。如下图:

button

原因相信大家也知道,因为背景图下方有阴影,所以整张图(蓝色框区域)的center自然不是我们想要的(红色框)的center。此时你可能自己利用android:padding属性来谩慢调整位置,或者让设计在上方加透明边切成对称的实现居中。

上面说的问题,其实也没有什么工作量,几行代码可以搞定。那看看下面这个问题

图1

图2

图3

产品要求设计出如图1,图2的自定义控件,里面的内容支持图片数字拼接和文本。设计给的背景图如图3,内容只能显示在图3右边的框内并居中。
问题来了,此时再想让控件里的内容居中就比较麻烦了,首先控件背景图是不规则的,显示内容的区域偏右,android:gravity="center"肯定不行,另外文本的行数支持一行或两行,数字拼接后的的图片大小还不知道,不能通过android:padding写死,怎样才能让控件的内容一直处在右边区域的中心呢?
其实点9图能很好地解决这种不对称背景控制内容位置的问题。

点9图控制内容区域

.9图介绍.png

如图9,大家都知道点1和点2的作用,但是很多人却忽略了右边点区域(点3)和下边点区域(点4)的作用,它们其实可以控制纵向和横向的显示区域。

上面问题中提到的自定义控件的问题,用背景图设置成点9图如下

图6

如图6,点3和点4控制了纵向和横向显示的区域,此时它们横纵相交的区域5就是内容区域。如果用这张点9图做控件背景,系统只会在区域5绘制控件内容。
因此我们可以按照需求控制内容显示区域后,再设置android:gravity="center",这样无论里面的内容怎么变化,一行或两行,系统绘制时都会放在内容区域的中心,那个复杂的位置问题就这样轻松解决了。
同理,问题的button文案居中问题也可以用这个方法轻松解决。

图7

10.png

点9图能很好的解决这种不对称背景的控制内容的问题。

END

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,392评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,350评论 0 17
  • 感觉终于找到了一个树洞,可以尽情的吐槽啦!最近喜欢酸甜口,桔子吃的比较多,皮肤都有点发黄啦!忌口忌口啊! 感觉有个...
    通通达阅读 254评论 0 0
  • 捧一本书 在暖阳里沉醉 沁一壶茶 在余晖下独饮 等一个人 伴着风销声匿迹 空气吸干了所有的水汽 停在路边等你 你,...
    张dela阅读 161评论 0 0