Android TextView加载带有图片的Html文本

一、导入jar包并添加依赖
(1)需要导入第三方jar包进行图片的加载处理
jar包下载地址:https://pan.baidu.com/s/1-o_hzhZoIHDeBi-ql_RwIg (提取码:bqys)
(2)将下载好的文件复制到libs文件夹下,右键Add As Library添加依赖。

二、在Activity中进行文本的加载处理
(1)创建一个activity,布局文件添加一个TextView控件即可
(2)添加两个相关处理类

public class URLImageParser implements Html.ImageGetter {
        TextView mTextView;
        public URLImageParser(TextView textView) {
            this.mTextView = textView;
        }
        @Override
        public Drawable getDrawable(String source) {
            final URLDrawable urlDrawable = new URLDrawable();
            ImageLoader.getInstance().loadImage(source,
                    new SimpleImageLoadingListener() {
                        @Override
                        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                            urlDrawable.bitmap = loadedImage;
                            urlDrawable.setBounds(0, 0, loadedImage.getWidth(), loadedImage.getHeight());
                            mTextView.invalidate();
                            mTextView.setText(mTextView.getText());
                        }
                    });
            return urlDrawable;
        }
}
    
public class URLDrawable extends BitmapDrawable {
        protected Bitmap bitmap;
        @Override
        public void draw(Canvas canvas) {
            if (bitmap != null) {
                canvas.drawBitmap(bitmap, 0, 0, getPaint());
            }
        }
}

(3)在onCreate方法中对ImageLoader进行实例化

contentTv = (TextView) findViewById(R.id.contentTv);
ImageLoader imageLoader = ImageLoader.getInstance();//实例化 ImageLoade
imageLoader.init(ImageLoaderConfiguration.createDefault(this));
final URLImageParser imageGetter = new URLImageParser(contentTv);

(4)setText

String str = "

(原标题:汇丰、渣打相继切断与华为业务往来)

【文/观察者网 尹哲】据《华尔街日报》当地时间20日报道,两家全球性银行决定不再向华为提供金融服务。

报道援引熟悉上述决定的人士说法称,这两家银行分别是汇丰银行(HSBC)和渣打银行(Standard Chartered),原因是华为的风险太高。

汇丰、渣打银行相继切断与华为业务往来:风险太高

香港中环金融中心,渣打银行、汇丰银行等。图源:视觉中国

其中有人透露,汇丰银行去年作出这个决定的。

2016年,该行和一家法院指定的机构向美国检察机关举报了华为的可疑交易。

"; contentTv.setText(Html.fromHtml(str, imageGetter, null));

你可能感兴趣的:(android)