富文本 Htmll类 html标签
HTML类可解析的标签
在手机上显示从网络端获取的数据有两种方式,一种是WebView,另一种是TextView,WebView大家都知道,功能强大但不灵活,下面主要说下TextView。通过查看android.text.Html的源码,发现Textview可以解析以下html标签:
- <a href="...">创建超文本链接
- <b>黑体字
- <big>字体加大
- <blockquote>从两边缩进文本
- <br>换行 插入换行符
- <cite>引用,通常是斜体
- <dfn>述语定义
- <div align="...">用来排版大块HTML段落,也用于格式化表
- <em>强调文本(通常是斜体加黑体)
- <font size="..." color="..." face="...">设置字体大小从1到7,颜色使用名字或RGB的十六进制值
- <h1>至<h6>标题
- <i>斜体字
- <img src="...">图片
- <p>创建一个段落
- <small>字体缩小
- <strike>加删除线
- <strong>加重文本(通常是斜体加黑体)
- <sub>下标字
- <sup>上标字
- <tt>打字机风格的字体
- <u>下划线
除了默认的一些标签,其还支持自定义标签,详见 http://www.cnblogs.com/mxgsa/archive/2012/11/15/2760256.htmlTextview 通过HTML显示本地及资源目录图片详见 http://www.cnblogs.com/mxgsa/archive/2012/12/14/2816775.htmlTextview 通过HTML显示网络图片详见 http://www.cnblogs.com/mxgsa/archive/2012/12/20/2823666.html
代码
public class MainActivity extends Activity {private TextView tv2;private TextView tv3;private TextView tv4;private TextView tv5;private TextView tv6;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv2 = (TextView) findViewById(R.id.tv2);tv3 = (TextView) findViewById(R.id.tv3);tv4 = (TextView) findViewById(R.id.tv4);tv5 = (TextView) findViewById(R.id.tv5);tv6 = (TextView) findViewById(R.id.tv6);setHTML();setHTML2();setHTML3();setHTML4();}private void setHTML() {//若是仅在布局文件中引用,可以把HTML格式字符串写到strings文件中,但要注意,很多很多格式都是不支持的!//getString(方法)得到的是没有任何格式的字符串,所以若是在代码中设置,就不能把HTML格式字符串写到strings文件中tv2.setText(Html.fromHtml(getString(R.string.html_str)));//建议直接在代码中定义并使用。注意双引号要加转义字符String html = "<html>|<i> 引用 </i>|<font color=\"#aabb00\"> values/ </font>|<font color=\"RED\"> strings </font>|<strong> 中的 </strong>|<em> html </em>|<strike> 格式的 </strike>|<u> 字符串 </u>|<h3> 但是 </h3>|<big> 很多 </big>|<small> 格式 </small>|<b> 都 </b>| <sub> 不 </sub>|<tt> 支持 </tt>|</html>";tv3.setText(Html.fromHtml(html));String html2 = "<a href=\"http://www.baidu.com\">代码中支持超链接</a> <font color=\"#aabb00\">支持设置颜色</font>";tv4.setMovementMethod(LinkMovementMethod.getInstance());tv4.setText(Html.fromHtml(html2));}//显示资源图片private void setHTML2() {ImageGetter imageGetter = new ImageGetter() {public Drawable getDrawable(String source) {int rId = Integer.parseInt(source);Drawable drawable = getResources().getDrawable(rId);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());return drawable;}};String sText = "drawable中的图片:<img src=\"" + R.drawable.ic_launcher + "\" />";tv5.setText(Html.fromHtml(sText, imageGetter, null));}//显示本地图片private void setHTML3() {ImageGetter imageGetter = new ImageGetter() {public Drawable getDrawable(String source) {Drawable drawable = Drawable.createFromPath(source);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());return drawable;}};String sText = "本地图片:<img src=\"/mnt/sdcard/temp/1.jpg\" />";try {tv6.setText(Html.fromHtml(sText, imageGetter, null));} catch (Exception e) {}}//显示网路图片private void setHTML4() {ImageGetter imgGetter = new Html.ImageGetter() {public Drawable getDrawable(String source) {Drawable drawable = null;URL url;try {url = new URL(source);drawable = Drawable.createFromStream(url.openStream(), "");} catch (Exception e) {return null;}drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());return drawable;}};//tv7.setText(Html.fromHtml(sText1, imageGetter, null));}}
布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#fff"android:orientation="vertical"android:padding="10dp" ><TextViewandroid:id="@+id/tv1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/html_str"android:textColor="#00f" /><TextViewandroid:id="@+id/tv2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#f0f" /><TextViewandroid:id="@+id/tv3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#0ff" /><TextViewandroid:id="@+id/tv4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#0f0" /><TextViewandroid:id="@+id/tv5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#00f" /><TextViewandroid:id="@+id/tv6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#880" /></LinearLayout><string name="html_str"><html>|<i> 引用 </i>|<font color="#aabb00"> values/ </font>|<font color="RED"> strings </font>|<strong> 中的 </strong>|<em> html </em>|<strike> 格式的 </strike>|<u> 字符串 </u>|<h3> 但是 </h3>|<big> 很多 </big>|<small> 格式 </small>|<b> 都 </b>| <sub> 不 </sub>|<tt> 支持 </tt>|</html></string>
富文本 Htmll类 html标签的更多相关文章
- android html 图片处理类--加载富文本工具类
在android开发中,一些资讯类页面,里面有html标签和图片,html 标签一般通过Html.fromHtml方法,即可以解决,但是如果html 有图片标签,那么,Html.fromHtml 好像 ...
- 去除富文本中的html标签及vue、react、微信小程序中的过滤器
在获取富文本后,又只要显示部分内容,需要去除富文本标签,然后再截取其中一部分内容:然后就是过滤器,在微信小程序中使用还是挺多次的,在vue及react中也遇到过 1.富文本去除html标签 去除htm ...
- Android检测富文本中的<img标签并实现点击效果
本文旨在:通过点击一张图片Toast输出位置与url链接. 闲话少说,实现原理大概是酱紫的::通过正则表达式检测富文本内的图片集合并获取url,在src=“xxx” 后面添加 onclick方法,至于 ...
- 在循环列表的富文本里摘出每个item的img标签内容(适合vue渲染)
昨天在做公司项目的社区动态内容.后台接口返回的数据是数组套对象,对象里有富文本,然后需要摘出富文本里的img标签在列表里分开渲染(即图片九宫格样式).最终效果如图: 这个是后盾接口返回的json数据 ...
- 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...
- 从html富文本中提取纯文本
其实从html富文本中提取纯文本很简单,富文本基本上是使用html标签给文本加上丰富多彩的样式. 所以只需要将富文本字符串中的“<.....>”标签剔除,即可得到纯文本.我们可以使用正则表 ...
- 原生JS实现简单富文本编辑器2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 原生JS实现简单富文本编辑器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- springmvc 后台实体类接受前端json字符串时,其中一个属性content 接受富文本内容时 标签<p>、<span> 这些标签丢失问题解决
问题描述: 前端一个字段 <script id="editor" type="text/plain" name="content" s ...
随机推荐
- bash shell学习-shell script基础 (笔记)
A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) Linux ...
- 如何利用PowerPoint2013制作阶梯流程图?
制作阶梯流程图有哪些窍门呢?下面我们一起来看看吧: ①启动PowerPoint2013,单击菜单栏--插入--形状,选择方角矩形,在图中画出来. ②画好矩形,摆放到合适的位置,如下图所示. ③然后再次 ...
- iOS开发——OC篇&特殊数据类型
一些特殊的数据类型 id.nil.Nil.SEL ,IMP Objective-C中有一些很有趣的数据类型经常会被错误地理解.他们中的大多数都可以在/usr/include/objc/objc.h或者 ...
- traceroute命令
traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置. 通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次 ...
- 前端面试题第二波,要offer的看过来~
快来测试测试自己掌握能力吧! 1. class.forname的作用?为什么要用? 1).获取Class对象的方式:类名.class.对象.getClass().Class.forName(" ...
- 使用XCode---下载组件
XCode是一个轻量级的ORM组件(对象与关系数据库映射),提供以面向对象的方式操作数据库的功能,能够解决90%以上的数据库操作场景. 做为X系列组件最重要的一员,XCode秉承了简单实用的特点,力求 ...
- 【HDOJ】5017 Ellipsoid
简单地模拟退火. /* 5017 */ #include <cstdio> #include <cstring> #include <cstdlib> #inclu ...
- -_-#【Backbone】Router
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- QR分解
从矩阵分解的角度来看,LU和Cholesky分解目标在于将矩阵转化为三角矩阵的乘积,所以在LAPACK种对应的名称是trf(Triangular Factorization).QR分解的目的在 ...
- js到记时代码
原文地址:http://www.w3school.com.cn/tiy/t.asp?f=hdom_timing_infinite html><head><script type ...
