# HTMLTextView **Repository Path**: adminfun/HTMLTextView ## Basic Information - **Project Name**: HTMLTextView - **Description**: Android TextView在展示HTML富文本时,对img标签的支持不是很理想,会遇到如下几个问题: 1、图片不能居中显示; 2、图片的大小被缩小; 3、图片是在ImageGetter中获取,ImageGetter不能和ImageSpan同时使用; 该项目就是解决这几个问题的。 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2018-12-26 - **Last Updated**: 2023-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HTMLTextView ### 介绍 Android TextView在展示HTML文本时,对标签的支持不是很理想,会遇到如下几个问题:
1、图片不能居中显示;
2、图片的大小被缩小;
3、图片是在ImageGetter中获取,ImageGetter不能和ImageSpan同时使用;
该项目就是解决这几个问题的。 ### 先看效果,如果是你想要的效果再往下看 ![avatar](https://upload-images.jianshu.io/upload_images/3991540-b9fddbab6c08e49c.png) ### 软件架构 ##### 1、图片不能居中显示 > android.text.Html 源码中对图片的处理使用了ImageSpan,而ImageSpan的对齐方式只有BottomLine和BaseLine两种, 没有居中对齐方式。所以需要自定义ImageSpan,重写draw()方法,在draw方法中位移Y轴偏移量,X轴不变, 使图片达到上下居中效果。 ##### 2、图片尺寸被缩小 > Drawable.setBounds()时,输入Bitmap的真实宽高即可防止图片被缩放。 ##### 3、ImageGetter和ImageSpan的冲突 > 上面说到android.text.Html源码中通过 ImageGetter 获取到Drawable后,使用了ImageSpan 将 Drawable 绘制到文本上, 想要自定义ImageSpan,遂强行重写Html类,并将自定义 ImageSpan 强行注入到自定义Html类中,促成一段姻缘。。。 ### 使用说明 **导入依赖** 导入项目前需要先导入一个依赖,此依赖并非是组件的地址!!! ``` implementation 'org.ccil.cowan.tagsoup:tagsoup:1.2.1' ``` **组件使用** ``` 1、this.htmlTextView = this.findViewById(R.id.activity3_text1); 2、this.htmlTextView.setHtml(str); ``` **下载回调** ``` htmlTextView.refreshHtml(); ```