热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android怎么实现网易新闻的图文混排?

2019独角兽企业重金招聘Python工程师标准刚开始以为是WebView,后来发现被坑了。不断在https:impress.pw寻找,找到htt

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

刚开始以为是WebView,后来发现被坑了。不断在https://impress.pw寻找,找到http://stackoverflow.com/questions/25194549/using-picasso-with-image-getter

问题解决,贴一下源码:

public class PicassoImageGetter implements Html.ImageGetter {private TextView textView = null;public PicassoImageGetter(TextView target) {textView = target;}@Overridepublic Drawable getDrawable(final String source) {BitmapDrawablePlaceHolder drawable = new BitmapDrawablePlaceHolder();Picasso.with(ShopApp.GLOBAL_CONTEXT).load(source).placeholder(R.drawable.item_defaut_img)
// .error(R.drawable.).into(drawable);return drawable;}class BitmapDrawablePlaceHolder extends BitmapDrawable implements Target {protected Drawable drawable;@Overridepublic void draw(final Canvas canvas) {if (drawable != null) {drawable.draw(canvas);}}public void setDrawable(Drawable drawable) {this.drawable = drawable;drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());if (textView != null) {textView.setText(textView.getText());}}@Overridepublic void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {setDrawable(new BitmapDrawable(ShopApp.GLOBAL_CONTEXT.getResources(), bitmap));}@Overridepublic void onBitmapFailed(Drawable errorDrawable) {setDrawable(errorDrawable);}@Overridepublic void onPrepareLoad(Drawable placeHolderDrawable) {}}
}

调用非常简单:

contentView.setText(Html.fromHtml(dto.content, new PicassoImageGetter(contentView), null));

 


转:https://my.oschina.net/twinkling/blog/673983



推荐阅读
author-avatar
小狐狸2502895237
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有