Textview解析带图片的html示例

 1 public class MainActivity extends Activity {
 2  private Handler handler;
 3  private String html;
 4  private TextView tv;
 5  private ProgressBar bar;
 6  @Override
 7  protected void onCreate(Bundle savedInstanceState) {
 8   super.onCreate(savedInstanceState);
 9   setContentView(R.layout.activity_main);
10   // 网上找的html数据
11   html = "<html><head><title>TextView使用HTML</title></head><body><p><strong>强调</strong></p><p><em>斜体</em></p>"
12     + "<p><a href=\"http://www.jb51.net">超链接HTML入门</a>学习HTML!</p><p><font color=\"#aabb00\">颜色1"
13     + "</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h3>标题2</h3><h6>标题3</h6><p>大于>小于<</p><p>"
14     + "下面是网络图片</p><img src=\"http://www.jb51.net/1207.jpg\"/></body>"
15     + "下面是网络图片</p><img src=\"http://www.jb51.net/207.jpg\"/></body></html>";
16   tv = (TextView) this.findViewById(R.id.id);
17   bar = (ProgressBar) this.findViewById(R.id.id_bar);
18   tv.setMovementMethod(ScrollingMovementMethod.getInstance());// 滚动
19   handler = new Handler() {
20    @Override
21    public void handleMessage(Message msg) {
22     // TODO Auto-generated method stub
23     if (msg.what == 0x101) {
24      bar.setVisibility(View.GONE);
25      tv.setText((CharSequence) msg.obj);
26     }
27     super.handleMessage(msg);
28    }
29   };
30   // 因为从网上下载图片是耗时操作 所以要开启新线程
31   Thread t = new Thread(new Runnable() {
32    Message msg = Message.obtain();
33    @Override
34    public void run() {
35     // TODO Auto-generated method stub
36     bar.setVisibility(View.VISIBLE);
37     /**
38      * 要实现图片的显示需要使用Html.fromHtml的一个重构方法:public static Spanned
39      * fromHtml (String source, Html.ImageGetterimageGetter,
40      * Html.TagHandler
41      * tagHandler)其中Html.ImageGetter是一个接口,我们要实现此接口,在它的getDrawable
42      * (String source)方法中返回图片的Drawable对象才可以。
43      */
44     ImageGetter imageGetter = new ImageGetter() {
45      @Override
46      public Drawable getDrawable(String source) {
47       // TODO Auto-generated method stub
48       URL url;
49       Drawable drawable = null;
50       try {
51        url = new URL(source);
52        drawable = Drawable.createFromStream(
53          url.openStream(), null);
54        drawable.setBounds(0, 0,
55          drawable.getIntrinsicWidth(),
56          drawable.getIntrinsicHeight());
57       } catch (MalformedURLException e) {
58        // TODO Auto-generated catch block
59        e.printStackTrace();
60       } catch (IOException e) {
61        // TODO Auto-generated catch block
62        e.printStackTrace();
63       }
64       return drawable;
65      }
66     };
67     CharSequence test = Html.fromHtml(html, imageGetter, null);
68     msg.what = 0x101;
69     msg.obj = test;
70     handler.sendMessage(msg);
71    }
72   });
73   t.start();
74  }
75  @Override
76  public boolean onCreateOptionsMenu(Menu menu) {
77   // Inflate the menu; this adds items to the action bar if it is present.
78   getMenuInflater().inflate(R.menu.main, menu);
79   return true;
80  }
81 }
时间: 2024-10-20 06:22:02

Textview解析带图片的html示例的相关文章

(五十五)用android:drawableRight设置带图片的TextView的实现

1.让TextView实现如下的带红色圈圈图片的效果 2.TextView实现带图片,只要通过android:drawableRight设置就行了 <TextView android:id="@+id/sq_question1" android:layout_width="match_parent" android:layout_height="52dp" android:layout_marginBottom="9dp"

Android开发系列(二十三):实现带图片提示的Toast提示信息框

Android中的Toast是很常见的一个消息提示框,但是默认的消息提示框就是一行纯文本,所以我们可以为它设置一些其他的诸如是带上图片的消息提示. 实现这个很简单: 就是定义一个Layout视图,然后设置Toast显示自定义的View. 在这里,就是设置了一个LinearLayout容器,然后给这个容器添加图片,添加文字信息.然后把这个容器设置给Toast对象,让其显示出来. 首先创建一个Android项目,然后我们编辑下main.xml文件: <span style="font-size

TextView中显示带图片的html

TextView中显示带图片的html 在TextView中显示图片,HTML,实现图文混排. 下载地址:http://www.devstore.cn/code/info/626.html 运行截图:

Android中Textview显示带html文本【Textview显示本地图片】

Textview可以显示基本的HTML标签 <a href="..."> <b> <big> <blockquote> <br> <cite> <dfn> <div align="..."> <em> <font size="..." color="..." face="..."> <

我的Android进阶之旅------&gt; Android在TextView中显示图片方法

面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包含图像的文本信息),并简要说明实现方法. 答案:Android SDK支持如下显示富文本信息的方式. 1.使用TextView组件可以显示富文本信息.在TextView组件中可以使用富文本标签来显示富文本信息,这种标签类似于HTML标签,但比HTML标签简单,支持有限的几种显示富文本的方式.如<font>标签用于设置字体和颜色,<b>用于设置粗体.包含这些标签的文本不能直接作为TextView.se

带图片的Toast

项目快结束了,终于有空可以总结下在开发中遇到的一些问题. 需要在文字的左侧显示图片 效果图如下: 用了两种方式实现: 一.自定义 1.新建一个xml布局 item_toast: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:l

【Android】21.4 图片动画缩放示例

分类:C#.Android.VS2015: 创建日期:2016-03-21 一.简介 该例子演示如何动画缩放图片,实现类似"点击看大图"的效果. 二.示例 1.运行截图    2.设计步骤 (1)添加图片 在Resources/no-dpi文件夹下添加4张图片(2个缩略图,2个大图). (2)添加ch2104MyImageButton.cs using Android.Content; using Android.Widget; using System.Drawing; using

android ListView SimpleAdapter 带图片

main.xml <RelativeLayout 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:

32Spannable的使用(Android显示html带图片 (表情开发))

Android中显示html文件要用Html.fromHtml(...)处理过的返回值,返回值可以成为setText()的参数.只显示带文本的html可以用下面的方法处理html文件. public static Spanned fromHtml (String source) 显示带图片的html要用下面的方法处理html文件. public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.T