为什么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显示文字和图片相关推荐

  1. android 显示图片和文字,android TextView显示文字和图片

    在做web的时候jsp页面可以直接显示一段html代码,如: TextView使用HTML 强调 斜体 " +" 超链接HTML入门学习HTML! 颜色1" +" ...

  2. Android TextView 显示HTML加图片

    TextView显示网络图片,我用android2.3的系统,可以显示图片出来,并且如果图片比较大,应用会卡的现象,肯定是因为使用主线程去获取网络图片造成的,但如果我用android4.0以上的系统运 ...

  3. android textview 显示一行,且超出自动截断,显示...

    1)设置文本是否包含顶部和底部的额外空白 在xml文件的TextView控件中加入如下属性: android:includeFontPadding="false" 2)有时直接引用 ...

  4. Android中显示gif动态图片

    在android中显示一个静态图片比如png jpg等等都很方便,但是如果要显示一个gif 动态图片就需要进行一些处理. 本文是采用自定义view 然后进行重新onDraw方法来实现 首先自定义Vie ...

  5. android textView 替文字添加下划线 删除线

    android textView 替文字添加下划线 删除线 方法1: tv=(TextView)findViewById(R.id.tv); tv.getPaint().setFlags(Paint. ...

  6. TextView显示插入的图片

    Android系统默认给TextView插入图片提供了三种方式: 1.ImageSpan 2.Html.ImageGetter 3.TextView.setCompoundDrawables(left ...

  7. Android TextView 设置文字背景色或文字颜色,字体阴影,字体样式

          String str="这是设置TextView部分文字背景颜色和前景颜色的demo!";         int bstart=str.indexOf("背 ...

  8. Android TextView显示网络图片

    前言:程序猿真的是有个通病啊,电梯上就在研究电梯的逻辑代码,走路看到红绿灯也会去研究算法,今天心情不错,于是就发了一个说说,发现某q空间中显示了我发的说说,但是我发的笑脸跟哭脸表情由于网络慢,很久才加 ...

  9. android简单分享----文字加图片

    2019独角兽企业重金招聘Python工程师标准>>> 这是android的简单分享,如果想分享到微博这些的话,需要你的手机里安装相关的app,下面的这些代码是整理网上各种网友的代码 ...

最新文章

  1. python处理xml中非法字符的一种思路
  2. 基于 WebRTC 实现自定义编码分辨率发送
  3. keyloadtool_keytool:术语“keytool”无法识别为cmdlet、函数、脚本文件或可操作程序的名称...
  4. C# 弹出确定、取消窗口
  5. 电脑桌面图标异常 计算机只显示C盘,Windows7系统桌面图标异常如何解决?
  6. java setfilter_Java – setFileFilter问题
  7. JavaScript基础二
  8. 朝花夕拾-4-shell
  9. ORA-12518: TNS: 监听程序无法分发客户机连接
  10. Django 报错 ‘polls‘ is not a registered namespace
  11. .wav格式的声音文件怎么变成matlab 中的.mat文件
  12. web-----简单小游戏项目
  13. postman调用webservice接口
  14. 在线生成android ios icon,一键生成Android/Android-HD/IOS 多尺寸ICON
  15. This tag and its children can be replaced by one TextView/ and a compound drawable
  16. 三种方法求最大公约数
  17. HoloLens2开发常见问题汇总
  18. 7-4 计算职工工资(15分)
  19. MTP in Android详解
  20. 一学就会的便签整理法 帮你轻松收集灵感

热门文章

  1. 新版Bintray-极简上传Library到JCenter
  2. Rafy 框架 - 大批量导入实体
  3. 华为eNSP和SecureCRT连接乱码问题
  4. 多行显示的UIButton
  5. [Linux]core文件调试方法
  6. FD.io/VPP — L3 vRouter
  7. 互联网协议 — TLS — 安全四要素
  8. NanoPi NEO Air使用十:自己编写驱动来控制LED
  9. U-Boot常用命令
  10. Single Number