先来看下下面的场景:
-
当我们需要为一段文字添加图片背景,而我们并不知道这段文字的长度和宽度,该如何解决?
-
一个图片在不同的分辨率下,边角会失真,如何解决?
比如社交IM中,我们并不知道用户聊天的字数长度,如果我们给其定死一个图片Drawable作为Background,那么在字数超过一定范围后,背景将会失真,视觉体验极差。而如果我们对图片根据实际情况进行拉伸,也会存在很多问题。
而点九图则是为了帮助我们更好的对图片进行拉伸。比如下面这个切图:
如果他需要纵向拉伸,直接拉会变成下面这个样子:
而点九图可以做到局部拉伸,而不是整体拉伸,这样就可以容易把变形的部分保护起来:
所以,从上面的保护和变形就能大致知道,点九图名称的由来,点九图一共分为九个部分:四个角、四条边和中间区域。
其中,4个角是不做拉伸的,而2条水平边和垂直边只做水平和垂直拉伸。所以可以保持圆角一直清晰、四条边不会被拉粗的情况。只有中间用黑线指定的区域做拉伸。结果是图片不会失真、走样。
点九图对标的是 .png
格式的图片。
一组测试,普通png经过拉伸,会产生明显的变色横纹,而使用 .9.png图片的效果则明显更好:
这是因为Android系统对点九图有专门的优化算法,优化其在多种分辨率下的显示。总的来说下面几个优势:
-
点九图虽然由程序员自己制作,但是Android提供了专门的工具,所以可以减少开发工作量
-
点九图具有极高的适配性,只需要一套切图,就可以适配多种分辨率,这样可以大幅减少Apk的大小
-
经过大量测试表明,使用点九图在多场景的显示效果远远优于png图片
总的来说,在Android端,点九图适用于需要图片拉伸的场景,比如说聊天小气泡、各种Tip气泡等。
==========================================================================================
在制作之前,我们需要先搞懂点九图的四条黑边的意义:
-
顶部黑边:在水平拉伸的时候,保持其他位置不动,只在这个点的区域做无限延伸
-
左边:在竖直拉伸的时候,保持其他位置不同,只在这个点的区域做无限延伸
-
底部:在水平拉伸的时候,指定图片里的内容显示区域
-
右边:在竖直拉伸的时候,指定图片里的内容显示区域
我们来制作一个聊天用的气泡,我们需要一张 png作为原图,这样的话我们就拿Android自带的 ic_lancher.png
吧。
我们找到该图片,右键点击 Create 9-Patch file:
选择好路径和名称后,会产生一个点九图:
点击之后,我们就可以对图片进行操作了。
左边的界面是操作界面,右边的是图片拉伸后的预览效果。假如我们的目标是要在下面红框中做文字的展示,那我们需要通过四条黑边画出这个区域来。
结尾
最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
(img-cabGG9fc-1715340405409)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!