android TextView显示文字和图片
为什么80%的码农都做不了架构师?>>>
在做web的时候jsp页面可以直接显示一段html代码,如:
<html><head><title>TextView使用HTML</title></head><body><p><strong>强调</strong></p><p><em>斜体</em></p>"
+"<p><a href=\"http://www.dreamdu.com/xhtml/\">超链接HTML入门</a>学习HTML!</p><p><font color=\"#aabb00\">颜色1"
+"</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h3>标题2</h3><h6>标题3</h6><p>大于>小于<</p><p>" +
"下面是网络图片</p><img src=\"http://img.baidu.com/img/image/suyan.jpg\"/><img src=\"http://img.baidu.com/img/image/suyan.jpg\"/><img src=\"http://img.baidu.com/img/image/suyan.jpg\"/></body></html>在jsp页面和老版的android 版本之前都可以显示图片,
较早版本的android实现:2.3.3测试
Html html="<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<String,Bitmap> bitmaps=new HashMap<String,Bitmap>();//存放新闻中图片
private boolean newsImgIsShow=false;//判断新闻中图片是否显示
private List<String> urls=new ArrayList<String>();//存放文章中的图片链接
TextView tvContent=(TextView) findViewById(R.id.tv_news_details_content);
urls.clear();
String strHtml=="<html></html>";
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();
转载于:https://my.oschina.net/zjds/blog/185976
android TextView显示文字和图片相关推荐
- android 显示图片和文字,android TextView显示文字和图片
在做web的时候jsp页面可以直接显示一段html代码,如: TextView使用HTML 强调 斜体 " +" 超链接HTML入门学习HTML! 颜色1" +" ...
- Android TextView 显示HTML加图片
TextView显示网络图片,我用android2.3的系统,可以显示图片出来,并且如果图片比较大,应用会卡的现象,肯定是因为使用主线程去获取网络图片造成的,但如果我用android4.0以上的系统运 ...
- android textview 显示一行,且超出自动截断,显示...
1)设置文本是否包含顶部和底部的额外空白 在xml文件的TextView控件中加入如下属性: android:includeFontPadding="false" 2)有时直接引用 ...
- Android中显示gif动态图片
在android中显示一个静态图片比如png jpg等等都很方便,但是如果要显示一个gif 动态图片就需要进行一些处理. 本文是采用自定义view 然后进行重新onDraw方法来实现 首先自定义Vie ...
- android textView 替文字添加下划线 删除线
android textView 替文字添加下划线 删除线 方法1: tv=(TextView)findViewById(R.id.tv); tv.getPaint().setFlags(Paint. ...
- TextView显示插入的图片
Android系统默认给TextView插入图片提供了三种方式: 1.ImageSpan 2.Html.ImageGetter 3.TextView.setCompoundDrawables(left ...
- Android TextView 设置文字背景色或文字颜色,字体阴影,字体样式
String str="这是设置TextView部分文字背景颜色和前景颜色的demo!"; int bstart=str.indexOf("背 ...
- Android TextView显示网络图片
前言:程序猿真的是有个通病啊,电梯上就在研究电梯的逻辑代码,走路看到红绿灯也会去研究算法,今天心情不错,于是就发了一个说说,发现某q空间中显示了我发的说说,但是我发的笑脸跟哭脸表情由于网络慢,很久才加 ...
- android简单分享----文字加图片
2019独角兽企业重金招聘Python工程师标准>>> 这是android的简单分享,如果想分享到微博这些的话,需要你的手机里安装相关的app,下面的这些代码是整理网上各种网友的代码 ...
最新文章
- python处理xml中非法字符的一种思路
- 基于 WebRTC 实现自定义编码分辨率发送
- keyloadtool_keytool:术语“keytool”无法识别为cmdlet、函数、脚本文件或可操作程序的名称...
- C# 弹出确定、取消窗口
- 电脑桌面图标异常 计算机只显示C盘,Windows7系统桌面图标异常如何解决?
- java setfilter_Java – setFileFilter问题
- JavaScript基础二
- 朝花夕拾-4-shell
- ORA-12518: TNS: 监听程序无法分发客户机连接
- Django 报错 ‘polls‘ is not a registered namespace
- .wav格式的声音文件怎么变成matlab 中的.mat文件
- web-----简单小游戏项目
- postman调用webservice接口
- 在线生成android ios icon,一键生成Android/Android-HD/IOS 多尺寸ICON
- This tag and its children can be replaced by one TextView/ and a compound drawable
- 三种方法求最大公约数
- HoloLens2开发常见问题汇总
- 7-4 计算职工工资(15分)
- MTP in Android详解
- 一学就会的便签整理法 帮你轻松收集灵感