Android HTML ImageGetter as AsyncTask

好吧,我对这个失去了理智。我的程序中有一个解析HTML的方法。我想要包含内嵌图像,我的印象是使用Html.fromHtml(字符串,Html.ImageGetter,Html.TagHandler)将允许这种情况发生。

由于Html.ImageGetter没有实现,所以由我来编写一个。但是,由于将URL解析为Drawables需要网络访问,我不能在主线程上执行此操作,因此它必须是AsyncTask。我认为。

但是,当您将ImageGetter作为参数传递给Html.fromHtml时,它使用必须重写的getDrawable方法。因此无法调用触发doInBackground方法的整个ImageGetter.execute事务,因此无法实际实现此异步。

我是否完全错了,或者更糟糕的是,这是不可能的?谢谢


德玛西亚99
浏览 534回答 3
3回答

慕码人2483693

挺好的。但是,不推荐使用DefaultHttpClient类型。在获取方法上尝试这个:private InputStream fetch(String urlString) throws MalformedURLException, IOException {        URL url = new URL(urlString);        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();        InputStream stream = urlConnection.getInputStream();        return stream;    }

慕婉清6462132

如果您使用Picasso,请将@momo代码的一部分更改为/***         * Get the Drawable from URL         * @param urlString         * @return         */        public Drawable fetchDrawable(String urlString) {            try {                Drawable drawable = fetch(urlString);                drawable.setBounds(0, 0, 0 + drawable.getIntrinsicWidth(), 0                        + drawable.getIntrinsicHeight());                return drawable;            } catch (Exception e) {                return null;            }        }        private Drawable fetch(String urlString) throws MalformedURLException, IOException {            return new BitmapDrawable(c.getResources(), Picasso.with(c).load(urlString).get());        }
打开App,查看更多内容
随时随地看视频慕课网APP