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));
}
}