在做web的时候jsp页面可以直接显示一段html代码,如:
TextView使用HTML强调
斜体
"+"
超链接HTML入门学习HTML!
颜色1"
+"
颜色2
标题1
标题2
标题3
大于>小于<
" +
"下面是网络图片



较早版本的android实现:2.3.3测试
Html html="";
TextView tv=(TextView)findViewById(R.id.textView1);
tv.setText(Html.fromHtml(html, imgGetter,null));
ImageGetter imgGetter = new Html.ImageGetter() {
public Drawable getDrawable(String source) {
Toast.makeText(context,source,Toast.LENGTH_LONG).show();
TextView tvs=(TextView)findViewById(R.id.textView);
String ss=tvs.getText()+source+"\n";
tvs.setText(ss);
Log.d("image",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;
}
};
我的项目是4.2的以上代码在获取网络图片是就会报错,因为android在之后的版本中不允许在主线程中做比较耗时的操作比如http请求,所以以上代码运行是就会报错!后来自己就对上面的代码做了处理
private Map bitmaps=new HashMap();//存放新闻中图片
private boolean newsImgIsShow=false;//判断新闻中图片是否显示
private List urls=new ArrayList();//存放文章中的图片链接
TextView tvContent=(TextView) findViewById(R.id.tv_news_details_content);
urls.clear();
String strHtml=="";
tvContent.setText(Html.fromHtml(strHtml,imgGetter,null));//先把文章赋值给textview
//imgGetter过滤文章中的图片
ImageGetter imgGetter = new Html.ImageGetter() {
public Drawable getDrawable(String source) {
Drawable drawable=null;
//source文章中图片地址
if(newsImgIsShow){//判断图片是否已经获取
//将图片从map中取出
BitmapDrawable bd = new BitmapDrawable(bitmaps.get(source));
drawable=bd;
}else{
//将图片地址添加到列表中
urls.add(source);
//设置默认图片
drawable=getResources().getDrawable(R.drawable.no_photo);
}
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable
.getIntrinsicHeight());
return drawable;
}
};
final Handler handler=new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
if(msg.what==1){//图片请求成功后重新设置textview
newsImgIsShow=true;
tvContent.setText(Html.fromHtml(strHtml,imgGetter,null));
}
}
};
//开辟子线程请求服务器图片
new Thread(){
public void run(){
try {
for(String url:urls){
Log.d("url",url);
Bitmap bitmap=null;
try {
bitmap=HttpHelper.getURLBitmap(url);//图片请求
if(null==bitmap){
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.no_photo);
}
} catch (Exception e) {
// TODO: handle exception
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.no_photo);
}
bitmaps.put(url, bitmap);
}
Message msg=new Message();
msg.what=1;
handler.sendMessage(msg);
} catch (Exception e) {
// TODO: handle exception
}
}
}.start();