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>下划线

代码



public class MainActivity extends Activity {
 
        
private TextView tv2;
 
        
private TextView tv3;
 
        
private TextView tv4;
 
        
private TextView tv5;
 
        
private TextView tv6;
 
         
        
@Override
 
        
protected void
 
        
super.onCreate(savedInstanceState);
 
        
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
 
        
//若是仅在布局文件中引用,可以把HTML格式字符串写到strings文件中,但要注意,很多很多格式都是不支持的!
 
        
//getString(方法)得到的是没有任何格式的字符串,所以若是在代码中设置,就不能把HTML格式字符串写到strings文件中
 
        
tv2.setText(Html.fromHtml(getString(R.string.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>";
 
        
tv3.setText(Html.fromHtml(html));
 
        
"<a href=\"http://www.baidu.com\">代码中支持超链接</a>    <font color=\"#aabb00\">支持设置颜色</font>"; 
        
tv4.setMovementMethod(LinkMovementMethod.getInstance());
 
        
tv4.setText(Html.fromHtml(html2));
 
        
    }
 
         
        
//显示资源图片
 
        
private void
 
        
new
 
        
public
 
        
int rId = Integer.parseInt(source);
 
        
                Drawable drawable = getResources().getDrawable(rId);
 
        
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
 
        
return
 
        
            }
 
        
        };
 
        
"drawable中的图片:<img src=\"" + R.drawable.ic_launcher + "\" />";
 
        
tv5.setText(Html.fromHtml(sText, imageGetter, null));
 
        
    }
 
         
        
//显示本地图片  
 
        
private void
 
        
new
 
        
public
 
        
createFromPath(source);
 
        
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
 
        
return
 
        
            }
 
        
        };
 
        
"本地图片:<img src=\"/mnt/sdcard/temp/1.jpg\" />";
 
        
try
 
        
tv6.setText(Html.fromHtml(sText, imageGetter, null));
 
        
catch
 
        
        }
 
        
    }
 
         
        
//显示网路图片
 
        
private void
 
        
new
 
        
public
 
        
null;
 
        
                URL url;
 
        
try
 
        
new
 
        
createFromStream(url.openStream(), "");
 
        
catch
 
        
return null;
 
        
                }
 
        
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
 
        
return
 
        
            }
 
        
        };
 
        
//tv7.setText(Html.fromHtml(sText1, imageGetter, null));
 
        
    }
 
        }

布局






html富文本左图右文 ios html富文本标签_移动开发



<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" >
                  
<TextView
         
android:id="@+id/tv1"
         
android:layout_width="wrap_content"
         
android:layout_height="wrap_content"
         
android:text="@string/html_str"
         
android:textColor="#00f" />
                  
<TextView
         
android:id="@+id/tv2"
         
android:layout_width="wrap_content"
         
android:layout_height="wrap_content"
         
android:textColor="#f0f" />
                  
<TextView
         
android:id="@+id/tv3"
         
android:layout_width="wrap_content"
         
android:layout_height="wrap_content"
         
android:textColor="#0ff" />
                  
<TextView
         
android:id="@+id/tv4"
         
android:layout_width="wrap_content"
         
android:layout_height="wrap_content"
         
android:textColor="#0f0" />
                  
<TextView
         
android:id="@+id/tv5"
         
android:layout_width="wrap_content"
         
android:layout_height="wrap_content"
         
android:textColor="#00f" />
                  
<TextView
         
android: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>