点击下载:MyImageSpan.txt

使用ImageSpan的童鞋应该都会遇到这样一个困惑,图片不能居中显示,ImageSpan中只有ImageSpan.ALIGN_BASELINE与ImageSpan.ALIGN_BOTTOM两个选项

关键是即使设置了这个参数,在不同手机上可能出现的情况还不同,同一段代码,可能有的居上,有的居下...其实这个很容易解决,继承ImageSpan重写getSize()和draw()方法即可

@Override
public void draw(Canvas canvas, CharSequence text, int start, int end,
float x, int top, int y, int bottom, Paint paint) {
try {
Drawable b = getDrawable();
canvas.save();
int transY = 0;
transY = ((bottom-top) - b.getBounds().bottom)/2+top;
canvas.translate(x, transY);
b.draw(canvas);
canvas.restore();
} catch (Exception e) {
}
}

具体看顶部附件

另外在设置spannString.setSpan最后一个flags参数,

分别有

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、

Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、

Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、

Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)

四个选项,包括即与span指定的内容格式一致,如span为红色字体,如果前面包括后面不包括,则在span内容的前面输入是红色字体(与span一致),后面输入是默认颜色字体。如果ImageSpan是图片,则需要设置前后都不包括,不然,包括的部分输入文字会不可见。

本文为原创,转载请注明转自:e7咨询  http://www.e7yoo.com/?post=30

ImageSpan图片不能居中的问题的更多相关文章

  1. 只用CSS实现容器内图片上下左右居中

    一直以来,大家都知道,DIV容器内设置 text-align:center 即可让图片居中,但是DIV内默认的图片是上对齐,不会上下居中,如果想要实现这样的效果,JS判断是比较麻烦的,因为DIV容器内 ...

  2. Wordpress文章图片不居中与开头缩进问题

    //段落开头缩进 .Mid2L_con p {text-indent:2em;} //文章内图片不居中(设置居中后) .Mid2L_con .aligncenter { display: block; ...

  3. div css 伪类 不固定图片大小 居中, css div 实现三角形

    div css 伪类 不固定图片大小 居中 <style> .pic_box{width:300px; height:300px; background-color:#beceeb; fo ...

  4. css全局定位内容图片自动居中

    最近在做一个资讯站点时候,因为采集的数据,图片不居中,导致界面很不美观,所以需要全局定义下图片输出时候进行居中. .content img { max-width:800px;_width:expre ...

  5. html/css系列-图片上下居中

    本文详情:http://www.zymseo.com/276.html图片上下居中的问题常用的几种方法:图片已知大小和未知大小,自行理解 .main{ width: 400px;height: 400 ...

  6. 网站Bannr适应大小屏幕,图片始终居中不被压缩

    网站banner一般都是2000px以上的宽度,为了让在小的屏幕上图片不被压缩并且是居中表现: 方法是让包裹图片全部的那个大容器始终正居中 <!-- banner --> <div ...

  7. css 图片文字居中

    1.单行文字居中 2.多行文字居中 3.利用background-position:center;的图片居中 4.利用display:table-cell;属性的图片居中 <!DOCTYPE h ...

  8. PHPExcel导出插入图片和居中问题

    首先到网上先下载PHPExcel 下载后解压得到这两个文件 下载后引用该文件 最后编写相关代码: 首先是图片插入导出 $objDrawing = new PHPExcel_Worksheet_Draw ...

  9. android-seekbar的thumb图片不居中显示的处理办法

    seekbar更换图片后,发现thumb的图片不会居中(竖直方向)显示了,代码如下: <SeekBar android:id="@+id/wb_seekbar" androi ...

随机推荐

  1. IOS第三方数据库--FMDB 分类: ios技术 2015-03-01 09:38 57人阅读 评论(0) 收藏

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  2. 用anaconda的pip安装第三方python包的日志

    用anaconda的pip安装第三方python包的日志 启动anaconda命令窗口: 开始> 所有程序> anaconda> anaconda prompt 会得到两行提示: D ...

  3. listview 去掉header和footer中的分割线

    在listView中加上android:headerDividersEnabled="false" android:footerDividersEnabled="fals ...

  4. iOS UITabBar

    参考文章:http://www.cnblogs.com/wendingding/p/3775488.html 简单明了,不用再总结了.

  5. OD提示 "为了执行系统不支持的动作, OllyICE 在这个被调试的程序中注入了一点代码, 但是经过5秒仍未收到响应..." 解决办法

    别的OD就可以,我自己整合过的一个很顺手的OD就是不行,最后找到了解决办法: 转自:http://bbs.pediy.com/showthread.PHP?t=97629 -------------- ...

  6. 堡垒机--paramiko模块

    做堡垒机之前,来了解一下paramiko模块. 实际上底层封装的SSH. SSHclient(1) import paramiko #实例化一个ssh ssh = paramiko.SSHClient ...

  7. UWP项目的包无法通过本地校验程序

    在UWP工程中,我们打出的包Appx需要通过本地的校验程序校验通过后才可以进行商店的提交.在校验程序汇报的不通过原因当中,除了显而易见的因为美术资源不规范.代码调用不合法API等原因之外,还有一些奇怪 ...

  8. ios自定义UIButton内部空间Rect

  9. iOS 之 NSUserDefault

    1. 概念 NSUserDefaults是一种特殊的property list.是系统封装的属性列表,方便记录简单的数据. 2. 使用说明 2.1. 创建NSUserDefaults NSUserDe ...

  10. Java-Swing编程之对话框案例详解

    package com.xushouwei.cn.photo; import java.awt.GraphicsConfiguration; import java.awt.GridLayout; i ...