上一篇博文解决了图片溢出的问题,现在又发现当图片小于TextView宽度的时候是靠左的,并没有居中显示。这个问题困扰了好久,在网上也搜索不到这种需求的信息。
探索
TextView 显示Html内容的时候,图片加载是在ImageGetter中的。getDrawable方法中是获取drawable对象 还没绘制上去,所以肯定无法在这里调整位置。那么就得去寻找绘制的方法:BitmapDrawable这个类了。
这个类中我们重写了draw方法。
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
if (bitmap != null) {
canvas.drawBitmap(bitmap, 0, 0, getPaint());
}
}
有一个canvas画布。有绘制的对象了那么调整绘制的位置也是让图片居中的一种方式。
所以在这里我使用canvas的宽度,它的宽度是等于TextView 的宽度的,具体方法如下:

博客探讨了在Android中,当TextView加载HTML内容时,如何解决图片小于TextView宽度时不居中显示的问题。通过重写BitmapDrawable的draw方法,利用canvas的宽度减去图片宽度的一半作为x轴偏移量,实现图片居中对齐。同时提供了完整的ImageGetter类代码。
最低0.47元/天 解锁文章
873

被折叠的 条评论
为什么被折叠?



