9.png图⽚制作详细教程
1.背景⾃适应且不失真问题的存在
padding是外边距还是内边距制作⾃适应背景图⽚是UI开发的⼀个⼴泛问题,也是界⾯设计师渴望解决的问题,我相信我们彼此都深有体会。
⽐如,列表的背景图⼀定,但是列表的⾼度随着列表数据项会发⽣变化;标题栏的背景,⽆论横屏还是竖屏,⾼分辨率还是低分辨率,都能⾃动填充满,⽽且不失真等等背景问题。
根据以往的经验,我们⼀般采⽤先切图后拼凑的做法,这种做法本来我想在这⾥和⼤家介绍⼀下,其实有的时候还是很有⽤的,但是说起来会⽐较⿇烦,就不说这个⾮重点了,略去,如果⼤家真的要介绍,在回复中说明,我再考虑⼀下。
Android针对这种情况,专门制作了⼀种.9.PNG格式来解决这个问题。
2.9.PNG格式。
我不想在这⾥过多的讨论PNG格式的定义问题。但是.9.PNG确实是标准的PNG格式,只是在最外⾯⼀圈额外增加1px的边框,这
个1px的边框就是⽤来定义图⽚中可扩展的和静态不变的区域。特别说明,left和top边框中交叉部分是可拉伸部分,未选中部分是静态区域部分。right和bottom边框中交叉部分则是内容部分(变相的相当于定义看⼀个内边距,神似padding功能,后⾯我会单独介绍⼀下),这个参数是可选的, 如下图。
在Android中以9.PNG格式的图⽚未背景,则能够⾃定义拉伸⽽不失真,⽐如系统的Button就是⼀个典型的例⼦。
其实呢,⽆论是left和top,还是right和bottom都是把图⽚分成9块 (边⾓四块是不能缩放的,其他的四块则是允许缩放的),所以叫
做9.PNG。
3. 使⽤Draw9Patch.jar制作9.PNG图⽚之定义拉伸区域。
前⾯已经了解到9.PNG格式的⼯作⽅式,下⾯我们使⽤⾕歌提供的Draw9Patch(运⾏android-sdk-windows\tools⽬录下
的Draw9Patch.bat)来制作.9.PNG图⽚。
第⼀步:准备要拉伸的图⽚。
⾮常⼩的⼀张图⽚,我希望以此为背景,中间部分填充⽂章内容。
第⼆步:制作.9.PNG图⽚。
打开Draw9Patch,把图⽚拖进去,如下:
默认的拉伸是整体拉伸,其实边框部分我们并不想拉伸,好,我们⾃⼰来定义拉伸区域,如下图:
然后点击File,导出为content.9.png。
4.使⽤Draw9Patch.jar制作9.PNG图⽚之定义内容区域。
是不是觉得⽂字和边距挨的太近,好,我们使⽤right和bottom边的线来定义内容区域,来达到增⼤内边距的⽬的。
我们定义了⼀个很⼩的内容区域,其他的地⽅则⾃动充当边框,从⽽使内边距显的很⼤
在这⾥,我要特别说明,⼀开始为了增⼤内边距,很容易惯性思维,在<TextView>中申明android:padding="10dip" 之类的,我在这⾥劝告朋友们不要这么做,⼀是你将⽆法预知你的显⽰,⼆是这⽐较混淆,因为设置内容区域就是确定padding,所以我在前⾯部分说他们是神似。我个⼈认为通过内容区域设定padding⽐在布局xml中定义padding更优雅,更简洁!
关于Draw9Patch⼯具的其他使⽤说明,我在次不再累述,因为要说的话太多,为了节省篇幅,请参考官⽅⽂档。
内容来源于⽹络,⾮本⼈原创。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论