大家好,今天和大家分享如何在TextView中加入图片的功能,有两种方式,第一种是继承TextView实现图片通过重写来实现图片的显示功能,第二种是利用现成的api实现图片的显示功能。我们知道TextView支持部分HTML标签,但是想在TextView中加入图片则怎么做呢?直接通过标签肯定是不行的。通过查看API我们发现有这样一个静态的方法:
publicstaticSpannedfromHtml(Stringsource,Html.ImageGetterimageGetter,Html.TagHandlertagHandler)
那么是不是只要实现其中的Html.ImageGetter就可以加入图片呢?答案是肯定的!
还是别废话吧,代码最直观。
packageorg.winplus.demo;
importandroid.app.Activity;
importandroid.graphics.drawable.Drawable;
importandroid.os.Bundle;
importandroid.text.Html;
importandroid.text.Html.ImageGetter;
importandroid.widget.TextView;
publicclassTextViewDemoActivityextendsActivity{
privateTextViewtxtWecome;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
privatevoidsetupViews(){
txtWecome=(TextView)findViewById(R.id.wecome);
txtWecome.append(Html.fromHtml("",imageGetter,null));
}
ImageGetterimageGetter=newImageGetter(){
@Override
publicDrawablegetDrawable(Stringsource){
intid=Integer.parseInt(source);
Drawabledrawable=getResources().getDrawable(id);
drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
returndrawable;
}
};
}