在android中,如何將html代碼轉換為text,然後顯示在textview中呢,有一個簡單直接的方法: 然而用的時候卻發現html裡面的圖片沒法被被解析出來,別慌,Html還有一個方法: 其中,我們可以自定義imageGetter,這個對象是用於解析html中的圖片。 最終調用: textVi ...
在android中,如何將html代碼轉換為text,然後顯示在textview中呢,有一個簡單直接的方法:
textView.setText(Html.fromHtml(content));
然而用的時候卻發現html裡面的圖片沒法被被解析出來,別慌,Html還有一個方法:
public static Spanned fromHtml(String source, ImageGetter imageGetter,TagHandler tagHandler)
其中,我們可以自定義imageGetter,這個對象是用於解析html中的圖片。
public class MImageGetter implements Html.ImageGetter { private Context c; private TextView container; public MImageGetter(TextView text, Context c) { this.c = c; this.container = text; } @Override public Drawable getDrawable(String source) { Drawable drawable = null; InputStream is = null; //source便是圖片的路徑,如果圖片在本地,可以這樣做
is = c.getResources().getAssets().open(source); try { TypedValue typedValue = new TypedValue(); typedValue.density = TypedValue.DENSITY_DEFAULT; drawable = Drawable.createFromResourceStream(null, typedValue, is, "src"); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight()); return drawable; } catch (Exception e) { System.out.println(e); return null; } }
最終調用:
textView.setText(Html.fromHtml(text, new MImageGetter(textView, this), null));
這樣便可以實現圖文混排了,在該顯示圖片的地方顯示圖片。
如果是要顯示網路上的圖片,getDrawable方法可以這樣
public Drawable getDrawable(String source) { final LevelListDrawable drawable = new LevelListDrawable(); Glide.with(c).load(source).asBitmap().into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource,
GlideAnimation<? super Bitmap> glideAnimation) { if(resource != null) { BitmapDrawable bitmapDrawable = new BitmapDrawable(resource); drawable.addLevel(1, 1, bitmapDrawable); drawable.setBounds(0, 0, resource.getWidth(),resource.getHeight()); drawable.setLevel(1); container.invalidate(); container.setText(container.getText()); } } }); return drawable; }
第三個參數 其作用是把 HTML 帶標記的文本內容字元串轉化成可以顯示效果的的 Spanned 字元串 。由於並非所有的 HTML 標簽都可以轉化,所以在使用時,用戶需要自己添加一些必要的標簽和處理方法時才會使用的。
轉載請標明出處,維權必究:https://www.cnblogs.com/tangZH/p/10491976.html
參考鏈接:https://blog.csdn.net/qq_30548105/article/details/78031347