Android如何在TextView中显示图片
7433 点击·0 回帖
![]() | ![]() | |
![]() | 大家好,今天和大家分享如何在TextView中加入图片的功能,有两种方式,第一种是继承TextView实现图片通过重写来实现图片的显示功能,第二种是利用现成的api实现图片的显示功能。我们知道TextView支持部分HTML标签,但是想在TextView中加入图片则怎么做呢?直接通过<img src=""/>标签肯定是不行的。通过查看API我们发现有这样一个静态的方法: [java] <span style="font-family:SimSun;font-size:16px;">public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) </span> <span style="font-family:SimSun;font-size:16px;">public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) </span>那么是不是只要实现其中的Html.ImageGetter就可以加入图片呢?答案是肯定的! 还是别废话吧,代码最直观 [java]<span style="font-family:SimSun;font-size:16px;">package org.winplus.demo; import Android.app.Activity; import Android.graphics.drawable.Drawable; import Android.os.Bundle; import Android.text.Html; import Android.text.Html.ImageGetter; import Android.widget.TextView; public class TextViewDemoActivity extends Activity { private TextView txtWecome; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setupViews(); } private void setupViews() { txtWecome = (TextView) findViewById(R.id.wecome); txtWecome.append(Html.fromHtml("<img src='"+R.drawable.tangcheng_ok+"'/>", imageGetter, null)); } ImageGetter imageGetter = new ImageGetter() { @Override public Drawable getDrawable(String source) { int id = Integer.parseInt(source); Drawable drawable = getResources().getDrawable(id); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()); return drawable; } }; }</span> <span style="font-family:SimSun;font-size:16px;">package org.winplus.demo; import Android.app.Activity; import Android.graphics.drawable.Drawable; import Android.os.Bundle; import Android.text.Html; import Android.text.Html.ImageGetter; import Android.widget.TextView; public class TextViewDemoActivity extends Activity { private TextView txtWecome; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setupViews(); } private void setupViews() { txtWecome = (TextView) findViewById(R.id.wecome); txtWecome.append(Html.fromHtml("<img src='"+R.drawable.tangcheng_ok+"'/>", imageGetter, null)); } ImageGetter imageGetter = new ImageGetter() { @Override public Drawable getDrawable(String source) { int id = Integer.parseInt(source); Drawable drawable = getResources().getDrawable(id); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()); return drawable; } }; }</span> 这是效果图: ![]() | |
![]() | ![]() |