栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android HTML.fromHTML()与图像?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android HTML.fromHTML()与图像?

URLDrawable.java

public class URLDrawable extends BitmapDrawable {    // the drawable that you need to set, you could set the initial drawing    // with the loading image if you need to    protected Drawable drawable;    @Override    public void draw(Canvas canvas) {        // override the draw to facilitate refresh function later        if(drawable != null) { drawable.draw(canvas);        }    }}

URLImageParser.java

public class URLImageParser implements ImageGetter {    Context c;    View container;        public URLImageParser(View t, Context c) {        this.c = c;        this.container = t;    }    public Drawable getDrawable(String source) {        URLDrawable urlDrawable = new URLDrawable();        // get the actual source        ImageGetterAsyncTask asyncTask =  new ImageGetterAsyncTask( urlDrawable);        asyncTask.execute(source);        // return reference to URLDrawable where I will change with actual image from        // the src tag        return urlDrawable;    }    public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable>  {        URLDrawable urlDrawable;        public ImageGetterAsyncTask(URLDrawable d) { this.urlDrawable = d;        }        @Override        protected Drawable doInBackground(String... params) { String source = params[0]; return fetchDrawable(source);        }        @Override        protected void onPostExecute(Drawable result) { // set the correct bound according to the result from HTTP call urlDrawable.setBounds(0, 0, 0 + result.getIntrinsicWidth(), 0          + result.getIntrinsicHeight()); // change the reference of the current drawable to the result // from the HTTP call urlDrawable.drawable = result; // redraw the image by invalidating the container URLImageParser.this.container.invalidate();        }                public Drawable fetchDrawable(String urlString) { try {     InputStream is = fetch(urlString);     Drawable drawable = Drawable.createFromStream(is, "src");     drawable.setBounds(0, 0, 0 + drawable.getIntrinsicWidth(), 0   + drawable.getIntrinsicHeight());      return drawable; } catch (Exception e) {     return null; }         }        private InputStream fetch(String urlString) throws MalformedURLException, IOException { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet request = new HttpGet(urlString); HttpResponse response = httpClient.execute(request); return response.getEntity().getContent();        }    }}

ImageGetter的用法

String html = "Hello " +"<img src='http://www.gravatar.com/avatar/" + "f9dd8b16d54f483f22c0b7a7e3d840f9?s=32&d=identicon&r=PG'/>" +" This is a test " +"<img src='http://www.gravatar.com/avatar/a9317e7f0a78bb10a980cadd9dd035c9?s=32&d=identicon&r=PG'/>";this.textView = (TextView)this.findViewById(R.id.textview);URLImageParser p = new URLImageParser(textView, this);Spanned htmlSpan = Html.fromHtml(html, p, null);textView.setText(htmlSpan);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569160.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号