一個顯示富文本的 TextView
XRichText
XRichText是一個可以顯示Html富文本的TextView。可以用于顯示新聞、商品詳情等場景。

使用
- Gradle : compile 'cn.droidlover:XRichText:1.0.0'
- Github :XRichText
主要特性
- 自定義超鏈接link的點擊
- 自定義圖片img的點擊
- 支持鏈式調用
- 圖片支持三種對齊方式(左對齊、居中、右對齊)
- 支持在圖片加載前對每張圖片的url、width、height、對齊方式精細調整
- 內置圖片下載器
- 可自定義圖片下載器,如使用universal image loader、Picasso、Glide等
實現原理
- spanned
- 線程池
- 自定義ImageGetter
示例
<cn.droidlover.xrichtext.XRichText
android:id="@+id/richText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp" />
在Java中:
richText
.callback(new XRichText.BaseClickCallback() {
@Override
public boolean onLinkClick(String url) {
showMsg(url);
return true;
}
@Override
public void onImageClick(List<String> urlList, int position) {
super.onImageClick(urlList, position);
showMsg("圖片:" + position);
}
@Override
public void onFix(XRichText.ImageHolder holder) {
super.onFix(holder);
if (holder.getPosition() % 3 == 0) {
holder.setStyle(XRichText.Style.LEFT);
} else if (holder.getPosition() % 3 == 1) {
holder.setStyle(XRichText.Style.CENTER);
} else {
holder.setStyle(XRichText.Style.RIGHT);
}
//設置寬高
holder.setWidth(550);
holder.setHeight(400);
}
})
.imageDownloader(new ImageLoader() {
@Override
public Bitmap getBitmap(String url) throws IOException {
return UILKit.getLoader().loadImageSync(url);
}
})
.text(TEXT);</pre>
api說明
- onLinkClick(String url) 當點擊超鏈接時觸發,url為點擊的url
- onImageClick(List urlList, int position) 當點擊圖片時觸發,urlList為圖片的url集合,position為被點擊的位置,從0開始
- onFix(XRichText.ImageHolder holder) 當圖片加載前回調此方法,通過holder可以調整圖片的src、width、height、style(對齊方式)
- 設置html內容時,務必調用text方法
- imageDownloader(ImageLoader loader)可以自定義圖片加載器,庫中已有默認實現。可以根據項目情況定義加載器,如三方庫UIL、Picasso等,只需實現ImageLoader接口就行。 getBitmap方法已經在線程池中,所以自定義loader時不必考慮線程問題.
- ClickCallback接口有默認實現類BaseClickCallback,可以直接使用此類重寫需要的方法。
本文由用戶 MosLdy 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!