Android怎么实现网易新闻的图文混排如何实现

在android中如何将html代码转换为text,然后顯示在textview中呢有一个简单直接的方法:

然而用的时候却发现html里面的图片没法被被解析出来,别慌Html还有一个方法:

其中,我们可以自定义imageGetter这个对象是用于解析html中的图片。

这样便可以实现图文混排如何实现了在该显示图片的地方显示图片。

如果是要显示网络上的图片getDrawable方法可以这样

第三个参数 其作用是把 HTML 带标记的文本内容字符串转化成可以显示效果的的 Spanned 字符串 。由于并非所有的 HTML 标签都可以转化所以在使鼡时,用户需要自己添加一些必要的标签和处理方法时才会使用的

转载请标明出处,维权必究:

}

刚开始以为是WebView后来发现被坑了。不断在寻找找到

问题解决,贴一下源码:

 
 
}

在使用TextView的时候我们经常需要在TextViewΦ进行图文混排如何实现,比如在QQ中聊天的消息中的表情底部tab图标等。

Android官方对TextView的图文混排如何实现提供了支持我们可以从以下三种方式实现TextView的图文混排如何实现:


一共有两种方式可以实现:XML布局设置和Java代码设置。

API 17后生效LTR时在左边,RTL时在右边
API 17后生效LTR时在右边,RTL时在左邊

注意:必须setBounds()测量图片边界否则不显示。

设置上下左右位置的图片
设置四周的图片其中两边对应xml中的start,end
设置上下左右位置的图片,图片囿默认的边界
设置四周的图片图片有默认的边界
设置图片与文字之间的间距

当TextView设置成固定大小时,由于文字距离边界的距离过大会导致文字与图片之间设置的间距无效,如下图


a.先自定义属性iconPadding来设置间距,并提供方法给外部调用

可以先参考:,该篇文章只解决了左右失效的问题。后期会整理个解决图文混排如何实现的工具库里面会有具体方案。

其中setSpan()方法包含如下参数:

flags常用的有四种

前后都包括在指萣范围前后插入新字符,都会应用新样式
前后都不包括在指定范围前后插入新字符,两端样式无变化

通常在insert方式才生效平时不生效,具体看:

背景色样式,显然可以用来设定文本的背景色
字体颜色样式用于改变字体颜色
主要由正常、粗体、斜体和同时加粗倾斜四种樣式
图片样式,主要用于在文本中插入图片

其中ImageSpan默认对其方式有两种:ALIGN_BOTTOM及ALIGN_BASELINE很可惜我们平常用的居中对其的方式没有,不过可以通过自定義实现后续会在开源出来。

一般显示HTML内容有两种方式:

现在大多数都用WebView的方式但是并不是所有的场景下都适合使用 WebView 来显示 HTML 内容,例如如果应用要显示的内容只是一部分 HTML 片段,就可以利用 TextView 来进行显示并且效率较高。

由于这种方式不太常用就不深入介绍,里面可以实現的效果还是很好的

Android 中的 TextView 组件常用于显示文本内容,其实它也可以显示 HTML 的内容

需要注意的是,并不是所有的 HTML 标签在 TextView 中都是支持的且官方文档并没有明确的说明支持 HTML 标签列表,通过查看 Android 源代码可以得到简单的支持列表。

下面的示例来介绍如何在 TextView 中显示一段 HTML 内容要显礻的这段 HTML 内容即包含超链接内容,也包含有图片

  • tagHandler,其作用是把 HTML 带标记的文本内容字符串转化成可以显示效果的的 Spanned 字符串 由于并非所有嘚 HTML 标签都可以转化,所以在使用时用户需要自己添加一些必要的标签和处理方法时才会继承使用的。

如果开发者认为安卓 TagHandler 提供的默认标簽解析已经够用直接在 fromHtml()方法中第三个参数的地方填写 null 既可。

formHtml()方法已经将 HTML 内容中的超链接和图片转义成为 UrlSpan 和 ImageSpan进而在 TextView 中完成显示。但是此時是没有任何用户交互的用户只能看到 HTML 的内容,下面介绍如何添加用户交互功能

Android 提供了 LinkMovementMethod 类以实现了对于文本内容中超链接的遍历,并苴支持对于超链接的点击事件

所以只要在添加下面一行代码,就可以使点击 UrlSpan 能够触发打开链接的功能

点击图片,跳转到图片详情页

關于HTML显示这部分,没做具体实现具体可以看:,里面有具体源码可以下载,HTML部分内容也是参考该篇文章完成的

以上就是关于图文混排如哬实现的一些解决方案,相信通过这些了解对于工作中的实际场景的使用大家会有适当的解决方案。由于实际应用较少所以认识较为淺显,可能有些地方描述不当后期会考虑封装个解决图文混排如何实现的工具类,加深下理解

  • ?开启? 【iAPP实现进入界面执行逐一显】 〖 15:22:14〗 《//首先开一个线程,因...

  • 1 简介 在使用TextView的时候我们经常需要在TextView中进行图文混排如何实现,比如在QQ中聊天的消息中就会...

  • 在工作中有时候峩们需要一个内部沟通的工具,然而微信、QQ等不够正式有安全或者网络方面的风险,同时又不想花钱使...

}

我要回帖

更多关于 图文混排如何实现 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信