android TextView加载html内容并加载图片
2016-06-03 10:06
549 查看
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());
}
}
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());
}
}
相关文章推荐
- android中设置控件边框以及如何保留上或下边框
- Android利用Gson解析嵌套多层的Json
- android短信接收器的实现,可以实现自动填写短信验证码功能
- 正确使用 Android 性能分析工具——TraceView
- Android Transition 和 Activity & Fragment Transition详解(三)--从创建一个Scene开始
- 【Android开发日记】之入门篇(十五)——ViewPager+自定义无限ViewPager
- 自定义控件
- Android Studio 多渠道打包并签名
- Android Studio快速定位当前打开的文件在哪个目录(package)下
- 跟着老罗学Android(一)
- Android打造属于自己的新闻平台(客户端+服务器)
- AndroidAutoLayout
- TextView 中 android:maxEms="" ,maxLine="",maxlenght="";的区别
- Android学习笔记六十二:Java并发编程:volatile关键字解析
- Android中Glide(加载图片)的使用
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
- android6.0(M) 验证权限工具类+ContextCompat.checkSelfPermission(context, permission)
- Android小知识库
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- Android中使用Picasso加载图片