如何从imageGetter获取空白图像

时间:2012-01-20 20:50:41

标签: android

我希望将文本设置为跨越,以便获得文本的html视图。 但是,我不想得到图像。那可能吗?

这是我的代码:

       Spanned description2=Html.fromHtml(des.get(position),null,null);
  TextView text = (TextView) dialog.findViewById(R.id.descr);
            text.setText(description2);

但是它给了我一些我不想要的照片的绿色框!请帮助

与图像:

String description2 = des.get(position).toString();

  Spanned description = Html.fromHtml(description2, new ImageGetter() {
            @Override
         public Drawable getDrawable(String source) {                  
            Drawable d = null;
            try {
                        InputStream src = imageFetch(source);
                        d = Drawable.createFromStream(src, "src");
                        if(d != null){
        d.setBounds(0,0,d.getIntrinsicWidth(),
        d.getIntrinsicHeight());

                        }
        } catch (MalformedURLException e) {
                  e.printStackTrace(); 
            } catch (IOException e) {
                  e.printStackTrace();  
            }

        return d;
        }

            public InputStream imageFetch(String source)
                    throws MalformedURLException,IOException {
        URL url = new URL(source);
        Object o = url.getContent();
        InputStream content = (InputStream)o;
        // add delay here (see comment at the end)     
        return content;
        }

        },null);

1 个答案:

答案 0 :(得分:1)

您必须覆盖ImageGetter的{​​{1}}实现,因为默认实现会返回那些丑陋的绿色方块:

getDrawable

然后将当前代码切换为:

private class ImageGetter implements Html.ImageGetter
{
   @Override
    public Drawable getDrawable(String source)
    {
      return new BitmapDrawable();
    }
};

现在,关于您在评论中提到的内容,您必须从UIthread卸载实际下载,尝试使用this post(看看我的答案,这是使用带处理程序的线程的方法)如果仍不清楚,请再问一次。