一、加载Html代码
String html=" 百度;";
textView.setMovementMethod(LinkMovementMethod.getInstance());//允许超链接点击跳转到浏览器
textView.setText(Html.fromHtml(html));
效果:
二、加载src标签
1、加载本地图片
String html="";
textView.setText(Html.fromHtml(html, new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
Drawable drawable = null;
try {
drawable = Drawable.createFromStream(new URL(source).openStream(), null);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
} catch (IOException e) {
e.printStackTrace();
}
return drawable;
}
},null));
注意:file:/别忘了加
Html还有个三参数的fronHtml方法,三个参数分别是:String source(图片资源的路径),ImageGetter imageGetter(实现ImageGetter类的对象),TagHandler tagHandler(暂不知什么用,不过这里设为null就行了)
ImageGetter类是Html类的一个静态接口,有个方法getDrawable,返回值为Drawable,作用是取得图片的Drawable
drawable = Drawable.createFromStream(new URL(source).openStream(), null);
这句代码,有一点要说,不要用网上许多人用的:
drawable= Drawable.createFromPath(source);
可能会报FileNotFound错误。
效果:
2、加载网络图片
html代码和之前差不多,把路径换成网络图片的地址就行
比如:
String html="";
但是ImageGetter的getDrawable方法需要变化:
这里使用Piccsso框架加载网络图片,不会的同学可以去百度一下
private class MyImageGetter implements Html.ImageGetter {
private URLDrawable urlDrawable = null;
@Override
public Drawable getDrawable(final String source) {
urlDrawable = new URLDrawable();
Picasso.with(context).load(source).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
urlDrawable.bitmap = bitmap;
urlDrawable.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());
textView.setText(textView.getText());//不加这句显示不出来图片,原因不详
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
return urlDrawable;
}
}
URLDrawable类:
/**
* Created by Administrator on 2016/6/28 0028.
*/
public class URLDrawable extends BitmapDrawable {
public Bitmap bitmap;
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
if (bitmap != null) {
canvas.drawBitmap(bitmap, 0, 0, getPaint());
}
}
}
调用方法如下:
textView.setText(Html.fromHtml(html, new MyImageGetter(), null));
效果:
转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/17022.html
微信打赏
支付宝打赏
感谢您对作者kyle的打赏,我们会更加努力! 如果您想成为作者,请点我