運行結果如下:
TtActivity.java
- public class TtActivity extends Activity {
- /* * Called when the activity is first created. */
- private TextView tv;
- static Context ctx = null;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- ctx = this;
- tv = (TextView) findViewById(R.id.tv);
- // String htmlLinkText=
- // " <a href=\"http://www.android-study.com/\"><u>Android學習網</u></a>";
- // tv.setText(Html.fromHtml(htmlLinkText));
- tv.setMovementMethod(LinkMovementMethod.getInstance());
- CharSequence text = tv.getText();
- if (text instanceof Spannable) {
- int end = text.length();
- Spannable sp = (Spannable) tv.getText();
- URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);
- SpannableStringBuilder style = new SpannableStringBuilder(text);
- style.clearSpans(); // should clear old spans
- for (URLSpan url : urls) {
- MyURLSpan myURLSpan = new MyURLSpan(url.getURL());
- style.setSpan(myURLSpan, sp.getSpanStart(url),
- sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
- tv.setText(style);
- }
- }
-
- private static class MyURLSpan extends ClickableSpan {
- private String mUrl;
-
- MyURLSpan(String url) {
- mUrl = url;
- }
-
- @Override
- public void onClick(View widget) {
- // TODO Auto-generated method stub
- Toast.makeText(ctx, "" + mUrl, Toast.LENGTH_SHORT).show();
- }
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TextView
- android:id="@+id/tv"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello" />
- </LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">局部事件1 <a href="1" ><u>hello1</u></a>,事件2<a href="2" ><u>hello2</u></a></string>
- <string name="app_name">Tt</string>
- </resources>
如何在Android TextView中顯示<img src=""/> html標籤內的圖片,大家都知道,在TextView中顯示HTML內容的方法如下所示:
- [size=3]TextView description=(TextView)findViewById(R.id.description);
- description.setText(Html.fromHtml(item.getDescription()));[/size]
- ImageGetter imgGetter = new Html.ImageGetter() {
- public Drawable getDrawable(String source) {
- Drawable drawable = null;
- Log.d("Image Path", source);
- 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;
- }
- };
- .........
- TextView description=(TextView)findViewById(R.id.description);
- description.setText(Html.fromHtml(item.getDescription(),imgGetter,null));
最後我要說的是,如果你的圖片是從網絡上獲取的,那麼你一定不要用這種方法顯示一張圖片,因爲這是最垃圾的辦法,你的程序會經常被卡死。
建議您可以使用WebView來顯示HTML內容。