9patch图的尺寸尽量为偶数

   美工做了一张.9的背景图,宽度110*80 像素,描点如下:

9patch图的尺寸尽量为偶数_第1张图片

  放到720p的智能电视上观看,总感觉怪怪的。仔细观看可以发现,前景图总是不能完全的覆盖掉背景图。总有那么一个像素的点多余出来,如图所示:

9patch图的尺寸尽量为偶数_第2张图片

  开始以为是美工做的图有问题,翻来覆去让人家改了好几次,效果始终不对,不是720p下不正常,要么就是1080p下不正常,终于把小姑娘改烦了。

  想想也是,是不是程序的问题呢?

  动用测量工具测量了一下,发现右边原本5px的边框,居然变成了4px。找了半天,最后终于确定原来是宽度的问题。

  我们使用的是dimension文件做适配,ImageView在720p下的实际宽度设置为233dp。恰恰是这个奇数的宽度,导致9 patch图发生了问题。

  细看使用的9patch背景图,为了防止图片中间的文字被拉伸,我们在文字两边各点了一个像素,用来表示拉伸。

  左右这一个可拉伸像素将根据ImageView的实际大小来进行填充,填充的宽度应该是相同的。比如有10个像素需要填充,那么左右各拉伸5px就可以了。

  但是如果宽度是奇数的话,比如11,那么按照四舍五入,左边点应该拉伸6px,右边点也同样拉伸6px。问题就产生了,如果右边点也拉伸6px的话,就超过了图片填充的区域宽度。

  所以这个时候看来图片的右侧就会多出1px的误差。

  经过实验,将宽度改为偶数即可。

9patch图的尺寸尽量为偶数_第3张图片

  这真是很挫的问题,希望大家注意。

  

  原文链接:http://www.67tgb.com/?p=591

  转载注明:望月听涛

你可能感兴趣的:(偶数,尺寸,9patch)