android TextView加载html内容并加载图片

来源:互联网 发布:福州seo顾问 编辑:程序博客网 时间:2024/04/29 14:05
package com.app.fengactivity;


import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;


import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.StrictMode;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.text.method.LinkMovementMethod;
import android.text.method.ScrollingMovementMethod;
import android.widget.TextView;


/** 
 * @author 作者 E-mail: 
 * @version 创建时间:2016-6-3 上午9:24:40 
 * 类说明 
 */
public class TextActivity extends Activity {


private TextView html_text;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
struct();
setContentView(R.layout.activity_text);
html_text = (TextView)findViewById(R.id.html_text);
String html = "<html><head><title>TextView使用HTML</title></head><body><p><strong>强调</strong></p><p><em>斜体</em></p>"
+ "<p><a href=\"http://www.dreamdu.com/xhtml/\">超链接HTML入门</a>学习HTML!</p><p><font color=\"#aabb00\">颜色1"
+ "</p><p><font color=\"#00bbaa\">颜色2</p><p><font color=\"#aabb00\">颜色1"
+ "</p><p><font color=\"#00bbaa\">颜色2</p><p><font color=\"#aabb00\">颜色1"
+ "</p><p><font color=\"#00bbaa\">颜色2</p><p><font color=\"#aabb00\">颜色1"
+ "</p><p><font color=\"#00bbaa\">颜色2</p><p><font color=\"#aabb00\">颜色1"
+ "</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h3>标题2</h3><h6>标题3</h6><p>大于>小于<</p><p>"
+ "下面是网络图片</p><img src=\"http://avatar.csdn.net/0/3/8/2_zhang957411207.jpg\"/></body></html>";
html_text.setMovementMethod(ScrollingMovementMethod.getInstance());// 设置textview可滚动
html_text.setMovementMethod(LinkMovementMethod.getInstance());//设置超链接可以打开网页
html_text.setText(Html.fromHtml(html, imgGet, null));
}

//这里面的resource就是fromhtml函数的第一个参数里面的含有的url
ImageGetter imgGet = new ImageGetter() {

@Override
public Drawable getDrawable(final String source) {
// TODO Auto-generated method stub

// new Thread(){
// public void run() {
Drawable draw = null;
URL url = null;
try {
url = new URL(source);
draw = Drawable.createFromStream(url.openStream(), ""); // 获取网路图片
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight());
return draw;
}
// }.start();


};

//强制在主线程中执行请求网络图片

@SuppressLint("NewApi")
public static void struct() {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork() 
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects() // 探测SQLite数据库操作
.penaltyLog() // 打印logcat
.penaltyDeath().build());
}


    
}
0 0
原创粉丝点击