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.TagHandler tagHandler)
ImageGetter 为处理html中<img>的处理器,生成Drawable对象并返回。
创建ImageGetter 主要实现下面的方法,source为<img>标签中src属性的值。
public Drawable getDrawable(String source)
下例为在TextView和EditView中显示html,并插入图片。
下图只显示html文字,点击按钮会在TextView和EditView文本后添加图片。
public class AndroidTest2Activity extends Activity {
/** Called when the activity is first created. */
TextView tv;
EditText et;
Button addPic;
String ct;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et=(EditText) this.findViewById(R.id.editText1);
tv=(TextView) this.findViewById(R.id.tv);
ct="aaa<font color=https://www.linuxidc.com/Linux/2012-07/\"red\">aaa</font>";
addPic=(Button) this.findViewById(R.id.AddPic);
addPic.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ct+="<img src=https://www.linuxidc.com/Linux/2012-07/\""+R.drawable.icon+"https://www.linuxidc.com/Linux/2012-07/\"/>";
refreshView();
}
});
refreshView();
}
private void refreshView(){
et.setText(Html.fromHtml(ct,imageGetter,null));
tv.setText(Html.fromHtml(ct,imageGetter,null));
}
ImageGetter imageGetter = new ImageGetter()
{
@Override
public Drawable getDrawable(String source)
{
int id = Integer.parseInt(source);
Drawable d = getResources().getDrawable(id);
d.setBounds(0, 0, d.getIntrinsicWidth(), d .getIntrinsicHeight());
return d;
}
};
}
1.跳转到浏览器直接访问页面,这段代码是在Activity中拷贝来的,所以有startActivity()方法
Uri uri = Uri.parse(""); //要链接的地址
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
2.使用TextView显示HTML方法
TextView text1 = (TextView)findViewById(R.id.TextView02);
text1.setText(Html.fromHtml(“<font size='20'>网页内容</font>”));
3.直接使用android中自带的显示网页组件WebView
webview = (WebView) findViewById(R.id.WebView01);
webview.getSettings().setJavaScriptEnabled(true);