宽度拉伸9patch图的尺寸尽量为偶数
题记:写这篇博客要主是加深自己对宽度拉伸的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。
美工做了一张.9的背景图,宽度110*80 像素,描点如下:
放到720p的智能电视上观看,总感觉怪怪的。仔细观看可以发明,远景图总是不能完整的覆盖掉背景图。总有那么一个像素的点多余出来,如图所示:
开始以为是美工做的图有问题,翻来覆去让人家改了好几次,效果一直不对,不是720p下不畸形,要么就是1080p下不畸形,终于把小姑娘改烦了。
想想也是,是否是程序的问题呢?
动用测量工具测量了一下,发明右边原本5px的边框,居然变成了4px。找了半天,最后终于确定原来是宽度的问题。
我们应用的是dimension文件做适配,ImageView在720p下的实际宽度设置为233dp。恰恰是这个奇数的宽度,致使9 patch图发生了问题。
细看应用的9patch背景图,为了避免图片中间的文字被拉伸,我们在文字两边各点了一个像素,用来表示拉伸。
左右这一个可拉伸像素将根据ImageView的实际巨细来进行填充,填充的宽度应当是相同的。比如有10个像素须要填充,那么左右各拉伸5px就能够了。
但是如果宽度是奇数的话,比如11,那么按照四舍五入,左边点应当拉伸6px,右边点也一样拉伸6px。问题就产生了,如果右边点也拉伸6px的话,就超过了图片填充的区域宽度。
所以这个时候看来图片的右边就会多出1px的误差。
经过试验,将宽度改为偶数即可。
这真是很挫的问题,希望大家注意。
原文链接:http://www.67tgb.com/?p=591
转载注明:望月听涛
文章结束给大家分享下程序员的一些笑话语录:
看到有人回帖“不顶不是中国人”,他的本意是想让帖子沉了。
---------------------------------
原创文章 By
拉伸和问题
---------------------------------