2 zikezi zikezi 于 2013.06.11 10:17 提问

android4.2 在listview中解析带有img标签的html,并显示在textview中

代码均在listeview的适配器里,主要代码如下:

public View getView(int position, View v, ViewGroup parent) {
        LiveContextHolder lvcHolder;
        if (v == null) {
            v = inflater.inflate(R.layout.live_contxt_item, null);
            lvcHolder = new LiveContextHolder();
            lvcHolder.txtv_time = (TextView) v
                    .findViewById(R.id.lvcitm_txtv_time);
            lvcHolder.txtv_contxt = (TextView) v
                    .findViewById(R.id.lvcitm_txtv_contxt);
            lvcHolder.txtv_rmax = (TextView) v
                    .findViewById(R.id.lvcitm_txtv_rmax);
            lvcHolder.txtv_qmax = (TextView) v
                    .findViewById(R.id.lvcitm_txtv_qmax);

            v.setTag(lvcHolder);
        } else {
            lvcHolder = (LiveContextHolder) v.getTag();
        }

        LiveContxt lvc = liveContxts.get(position);

        lvcHolder.txtv_time.setText(lvc.getTime());
        lvcHolder.txtv_qmax.setText(lvc.getQmax());
        lvcHolder.txtv_rmax.setText(lvc.getRmax());
        CharSequence html;
        String html_c = lvc.getM_alias()+": "+StringCL.rplceStr(lvc.getContxt());
        StringBuffer html_r =  new StringBuffer("");
        if (lvc.getRplyLst() != null && lvc.getRplyLst().size() > 0) {
            for (RplyContxt rply : lvc.getRplyLst()) {
                html_r.append("--答--").append(rply.getM_alias()).append(":")
                        .append(StringCL.rplceStr(rply.getRply()));
                html_r.append("   ");
            }
        }
        html = Html.fromHtml(html_c + "  " +html_r.toString(),imageGetter,null);
        lvcHolder.txtv_contxt.setText(html);

        return v;
    }



    final Html.ImageGetter imageGetter = new Html.ImageGetter() {
        public Drawable getDrawable(String source) {
            //source="http://192.168.0.145:8888/hxzb/data/Image/2013-06/20130609152823009.jpg";
            // 在此必须异步加载图片
            Drawable d = null;
            try {
                InputStream is = new DefaultHttpClient().execute(new HttpGet(source)).getEntity().getContent();
                Bitmap bm = BitmapFactory.decodeStream(is);
                d = new BitmapDrawable(context.getResources(), bm);
                d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicWidth());
            } catch (Exception e) {
                e.printStackTrace();
            }
            return d;
        }
    };

问题在于在imageGetter时要开线程,但开线程也会引发其他问题,如图片还么下载完,函数就已经返回了,会有空值,并且我也不知怎么写这个线程,望高手指导!!!

1个回答

u010434246
u010434246   2017.02.13 16:26

建立楼主使用框架进行图片的加载

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
textView显示html带img标签的字符串(支持minSdkVersion>8)
public class Html_TextView_TestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan
Android在TextView中显示html标签以及异步加载网页图片
一、外部调用方法TextView contentTv = (TextView)v.findViewById(R.id.itemTextView); //默认图片,无图片或没加载完显示此图片 Drawable defaultDrawable = getResources().getDrawable(R.drawable.empty_photo); //调
TextView显示带图片html的几种处理方式
Textview可以显示基本的HTML标签,如果不知道那些标签,可以查看Android中Textview显示带html文本一-------【HTML标签】! 下面着重说一下Textview显示“img”标签,也许看到这里,大家都会想到就是构建ImageGetter,重载一下其 public Drawable getDrawable(String source)方法,获取该路径的图片。 例如:
Android自定义解析Html的TextView-HtmlView
在项目中有时需要显示一些Html文本,但是时webView的性能和效率都不太好,所以就需要使用Textview来显示Html文本,好在Andriod本身提供了一个简单的Html解析的方法: Html.fromHtml(text, ImageGetter, TagHandler); 下面是通过重写TextView的方式实现自动解析Html文本的自定义组件HtmlView,该组件主要实现的功能是解
android 在listview上面的Textview实现html解析并且图片异步宽高布局重新适配
我整理一下就发上来,等……
iOS原生如何加载HTML中img标签的图片
前言最近iOS App项目中使用Webview加载H5页面比较多,也有不少朋友经常问到这个问题,在这里我也学习学习如何通过iOS原生的方式来加载H5页面中的图片然后让webview显示图片。相信有很多朋友也遇到过这样的问题,可是很多朋友都没有思路,不知如何入手。今天,刚好学习了一下,并写了一个简单的demo。下面让我们一起来学习一下吧!本篇文章适合哪些人群阅读? 项目中有类似需求的,而又没
textView加载带图片Html标签
textview加载带图片的html片段并实现按图片原始比例缩放图片
使用Jsoup解析Html == TextView显示html图片的方法
想要做一个看新闻的应用,类似Cnbeta客户端的东西。大致思路如下:根据链接获取新闻列表页的html代码,然后解析,找到所有的新闻标题和新闻链接用listView显示,当点击ListView的Item再加载相应的新闻内容。 其中获取html代码,可以使用如下代码实现: [java] view plain copy  print?
Android 详解实现TextView加载带图片标签的Html并按比例缩放
最近在做商城类项目,有这样一个需求:商品详情里边有一个商品描述,这个字段最初设计的是用来显示一段描述文字,做完以后设计说需要支持图文的详情,没办法改吧~谁让咱是程序猿呢,很自然的就想到TextView加载Html标签,加载不带图片的Html片段很简单只要setText(Html.fromHtml(...))就可以了,仔细看了下源码/** * Returns displayable sty
解析字符串中所有的html中img标签的url
解析字符串中所有的html标签中的url连接  #pragma mark 截取服务器传来的图片字符串 - (void)GetDescriptionAndImagesWithStringData:(NSString *)stringData {     NSMutableArray *arrayDetailImages = [NSMutableArray array];     /