• 富文本 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.html
    Textview 通过HTML显示本地及资源目录图片详见 http://www.cnblogs.com/mxgsa/archive/2012/12/14/2816775.html
    Textview 通过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;
        @Override
        protected 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" >
        <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>





  • 相关阅读:
    C#基础知识系列十(集合)
    C#基础知识系列九(对IEnumerable和IEnumerator接口的糊涂认识)
    C#基础知识系列八(const和readonly关键字)
    C#基础知识系列七(base、this、new、override、abstract、virtual、static)
    C#基础知识系列六(静态类和静态类成员)
    C#基础知识系列五(构造函数)
    C#基础知识系列四(运算符汇总)
    C#基础知识系列三(类和结构体、String和StringBuilder、equals和==)
    C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)
    C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)
  • 原文地址:https://www.cnblogs.com/baiqiantao/p/5430896.html
Copyright © 2020-2023  润新知