Android TextView解析Html图片标签

今天碰到一个后台返回Html标签的数据,一开始使用的方法是Html.fromhtml方法,但是那个图片只显示一个小框,点进去到详情之后才能真正显示出来。这样的效果体验太差了,于是我就换了一种方式来解析。下面是代码:

       //加载图片  我这个是在adapter里加载的数据  
        NetworkImageGetter imageGetter = new NetworkImageGetter(); //调用下面的方法
        Spanned spanned = Html.fromHtml(entity.getArt_content(), imageGetter, null);//调用下面的方法
        text.setText(spanned);//把解析完的数据放到组件中就可以了

private final class NetworkImageGetter implements Html.ImageGetter {
        @Override
        public Drawable getDrawable(String source) {
            // TODO Auto-generated method stub
            LevelListDrawable d = new LevelListDrawable();
            new LoadImage().execute(source, d);
            return d;
        }
    }
    /**** 异步加载图片 **/
    private final class LoadImage extends AsyncTask {
        private LevelListDrawable mDrawable;
        @Override
        protected Bitmap doInBackground(Object... params) {
            String source = (String) params[0];
            mDrawable = (LevelListDrawable) params[1];
            try {
                InputStream is = new URL(source).openStream();
                return BitmapFactory.decodeStream(is);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Bitmap bitmap) {
            if (bitmap != null) {
                BitmapDrawable d = new BitmapDrawable(bitmap);
                mDrawable.addLevel(1, 1, d);
                mDrawable
                        .setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());
                // mDrawable.setBounds(0, 0,
                // getWindowManager().getDefaultDisplay().getWidth(),
                // bitmap.getHeight());
                mDrawable.setLevel(1);
                CharSequence t = holder.shouye_list_price.getText();
                holder.shouye_list_price.setText(t);
            }
        }
    }

你可能感兴趣的:(Android TextView解析Html图片标签)