zoukankan      html  css  js  c++  java
  • 宽度拉伸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

      转载注明:望月听涛

    文章结束给大家分享下程序员的一些笑话语录: 开发时间
      项目经理: 如果我再给你一个人,那可以什么时候可以完工?程序员: 3个月吧!项目经理: 那给两个呢?程序员: 1个月吧!
    项目经理: 那100呢?程序员: 1年吧!
    项目经理: 那10000呢?程序员: 那我将永远无法完成任务.

    --------------------------------- 原创文章 By
    拉伸和问题
    ---------------------------------

  • 相关阅读:
    【转】Java并发编程:阻塞队列
    【计算机二级Java语言】卷005
    【计算机二级Java语言】卷004
    【计算机二级Java语言】卷003
    【计算机二级Java语言】卷002
    【计算机二级Java语言】卷001
    【计算机二级C语言】卷020
    【计算机二级C语言】卷019
    【计算机二级C语言】卷017
    【计算机二级C语言】卷016
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3102344.html
Copyright © 2011-2022 走看看