[bug修复方案分享]ImageSpan居中问题

1.背景及原因分析:

  之前我们自定义的ImageSpan,居中的算法是这样:

这个计算方法使用bottom这一参数为基准,进行居中计算。如果一个textview设置了行距,在android5及以上的操作系统,textview在单行和多行是这个bottom值是不一样的(单行文本无行距)。导致居中的显示有误。

2.解决办法:

  须要找到一个合理的基准,我以y这个参数为基准。从源码上观察,y即字体排印学中的基线(wiki地址,可能被墙)。

  则新的计算方法为:

   

时间: 2024-10-11 04:45:48

[bug修复方案分享]ImageSpan居中问题的相关文章

[bug修复方案分享]阿拉伯文导致TextView显示顺序左右颠倒

bug现象: 在“?(·ω·) ?”这个表情后通过StringBuilder拼接的文字会显示在表情内部,例如拼接“2015”后TextView控件中显示为“?(·ω·) ?2015” bug原因排查: Step1:怀疑是工程师调用append方法错误,但通过debug调试查看String的char[]值正常 Step2:怀疑是“ ?”这个特殊字符引起的问题,删除后显示正常 Step3:百度搜索“ ?”字符,发现是阿拉伯语文字,结合阿拉伯语从右至左的阅读.书写顺序,确认bug原因 bug修复方法:

[bug修复方案分享]Android4.0以上弹出Notification时图标显示不正常

1. 现象 在Android4.0以上系统中,弹出通知栏消息时图标显示不全,如下图: v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·'"

[golang] Glide 包管理工具,在windows10 64位系统上的bug修复方案

bug重现 [ERROR] Unable to export dependencies to vendor directory: Error moving files: exit status 1. output: Access is denied. 0 dir(s) moved 解决方案 第一步 //找到这个文件 github.com/Masterminds/glide/blob/master/path/winbug.go // CustomRemoveAll is similar to os

Android 热修复方案分析

绝大部分的APP项目其实都需要一个动态化方案,来应对线上紧急bug修复发新版本的高成本.之前有利用加壳,分拆两个dex结合DexClassLoader实现了一套全量更新的热更方案.实现原理在Android 基于Proxy/Delegate 实现bug热修复这篇博客中有分解.因为这套方案是在Java端实现,并且是全量更新所以兼容性较好,成功率较高.但是在线上跑了几个月之后就碰到了瓶颈,因为随着业务的增长分拆过之后的dex文件方法数也超过65535个,更换拆包方案的话维护成本太高.同时由于没有做差异

Struts2漏洞修复方案

近期Struts2被曝重要漏洞,此漏洞影响struts2.0-struts2.3所有版本,可直接导致服务器被远程控制从而引起数据泄漏,影响巨大,受影响站点以电商.银行.门户.政府居多. 官方描述:S2-016:https://cwiki.apache.org/confluence/display/WW/S2-016S2-017:https://cwiki.apache.org/confluence/display/WW/S2-017 官方建议修复方案:升级到最新版本 struts-2.3.15.

Bash漏洞批量检测工具与修复方案

<img src="http://image.3001.net/images/20140928/14118931103311.jpg!small" title="shellshock-bug-bash-bashbug-938x535.jpg"/></strong></span>&a

Android热修复技术专题:来自微信、淘宝、支付宝、QQ空间的热修复方案

最近好多人都讨论关于热更新的话题,所以查询了一些资料看看 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App.测试.向各个应用市场和渠道换包.提示用户升级.用户下载.覆盖安装.有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布. 这时候就提出一个问题:有没有办法以补丁的方式动态修复紧急Bug,不再需要重新发布App,不再需要用户重新下载,覆盖安装?答案当然是有的,那就是最近涌现出来得热补丁方案,主要包括淘宝的Dexpo

CentOS bug修复指令集(阿里云适用)

如 RHSA-2017:0817: kernel security, bug fix, and enhancement update (Moderate) 修复方案: yum update kernel yum update kernel-devel yum update kernel-firmware yum update kernel-headers 依次在控制台输出即可,会提示下载,到最后有一个 Y/N,选择Y即可. 最后显示Complete! 完成了. 另阿里云的46个漏洞所有修复命令

网站安全之逻辑漏洞检测 附网站漏洞修复方案

在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭泄露,包括手机号,姓名,地址都被泄露,后续带来的损失很大,最近几年用户信息泄露的事件时有发生,给很多企业,酒店都上了一堂生动的安全课.关于网站逻辑漏洞的总结,今天跟大家详细讲解一下.网站逻辑漏洞 用户的隐私信息属于数据的保护的最高级别,也是最重要的一部分数据,在逻辑漏洞当中属于敏感信息泄露,有些敏感信息还包括了系统的重要信息,比如服务器的