在做移动中间件的过程中,遇到了背景图片自适应的问题,比如一个Button的背景图片,如何让一张图片能够在不同高宽的场景下做到不失真。
在做移动中间件的过程中,遇到了背景图片自适应的问题,比如一个Button的背景图片,如何让一张图片能够在不同高宽的场景下做到不失真。
方案一: 刚开始想到的一个方案是用android的 nine-patch (又称“九妹”),*.9.png的图片是标准的png格式的图片,只是在外边1px的区域增加了边框,定义了缩放区域,只有上方黑线和左边黑线的交会区域会被拉伸,如下图所示:

将图片放在 drawable 目录下,本文中我以一个项目为例子去比较出加载的效果,在一个页面里设置两个button,一个用点9的图片,另一个用普通的图片,运行后的效果如下,从图上可以看到,点9的图片实现了背景缩放不失真,达到了想要的效果。

但往往事情并不是那么简单就可以解决的,在我们开发过程中,我们的产品在用户使用的过程中,图片是放在自定义目录下的,而没有放在dra

本文探讨了在Android开发中如何使背景图片自适应不同尺寸的组件,避免失真。首先介绍了使用nine-patch(*.9.png)图片的方法,然后针对图片存放在自定义目录下无法生效的问题,深入研究了图片的头信息,并通过编程方式为普通图片添加类似nine-patch的拉伸信息,成功实现了背景图片的自适应缩放。
最低0.47元/天 解锁文章

236

被折叠的 条评论
为什么被折叠?



