博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9patch图的尺寸尽量为偶数
阅读量:4625 次
发布时间:2019-06-09

本文共 640 字,大约阅读时间需要 2 分钟。

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

 

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

 

 

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

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

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

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

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

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

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

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

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

 

 

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

 

转载于:https://www.cnblogs.com/error404/p/3167624.html

你可能感兴趣的文章
vim vimtutor
查看>>
Jmeter学习笔记12-监听器以及测试结果的分析
查看>>
ASP.NET Core中使用GraphQL - 第九章 在GraphQL中处理多对多关系
查看>>
Python 开发与测试 Webservice(SOAP)
查看>>
结对第一次—原型设计(文献摘要热词统计)
查看>>
selenium +python 对table的操作
查看>>
get提交时中文传值乱码的有关问题
查看>>
Node.js初体验
查看>>
百度之星 1004 Labyrinth
查看>>
crm创建报告补充导航
查看>>
几种开源分词工具的比較
查看>>
等于null和长度0有区别,null不能调用任何方法,如Tostring 和.length 源于checkbox的未勾选返回值为null,勾选的返回值为on...
查看>>
项目管理专业 知识点总结(三)
查看>>
关于Android 打开新的Activity 虚拟键盘的弹出与不弹出
查看>>
“万能数据库查询分析器”在四大软件下载网站的排行榜中均入围前10,可喜可贺...
查看>>
和菜鸟一起学linux总线驱动之smartcard操作模式和协议与参数选择
查看>>
android 开发工具(转)
查看>>
python中的uuid4
查看>>
CSS 必知的7个知识点
查看>>
asp.net mvc 生成条形码
查看>>