Skip to content

Commit

Permalink
add readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
limedroid committed Nov 4, 2016
1 parent 7902394 commit c0d18eb
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 9 deletions.
96 changes: 96 additions & 0 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# XRichText

---

[XRichText](https://github.com/limedroid/XRichText.git)是一个可以显示Html富文本的TextView。可以用于显示新闻、商品详情等场景。欢迎star、fork,提出意见。

<p align="center">
<img src="art/xrichtext.gif" alt="XRecyclerView" />
</p>

### 使用

* Gradle : compile 'cn.droidlover:XRichText:1.0.0'
* Github : [XRichText](https://github.com/limedroid/XRichText.git)

### 主要特性

* 自定义超链接link的点击
* 自定义图片img的点击
* 支持链式调用
* 图片支持三种对齐方式(左对齐、居中、右对齐)
* 支持在图片加载前对每张图片的url、width、height、对齐方式精细调整
* 内置图片下载器
* 可自定义图片下载器,如使用universal image loader、Picasso、Glide等

### 实现原理

* spanned
* 线程池
* 自定义ImageGetter

### 示例
```xml
<cn.droidlover.xrichtext.XRichText
android:id="@+id/richText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp" />
```

在Java中:
```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);
```

### api说明

* onLinkClick(String url) 当点击超链接时触发,url为点击的url
* onImageClick(List<String> 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,可以直接使用此类重写需要的方法。






18 changes: 9 additions & 9 deletions app/src/main/java/cn/droidlover/xrichtext/demo/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package cn.droidlover.xrichtext.demo;

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.Toast;

import java.io.IOException;
import java.util.List;

import cn.droidlover.xrichtext.ImageLoader;
import cn.droidlover.xrichtext.XRichText;

/**
Expand Down Expand Up @@ -34,19 +37,16 @@ protected void onCreate(Bundle savedInstanceState) {

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);
Expand All @@ -63,12 +63,12 @@ public void onFix(XRichText.ImageHolder holder) {
holder.setHeight(400);
}
})
// .imageDownloader(new ImageLoader() { //如果不设置,有默认的下载器
// @Override
// public Bitmap getBitmap(String url) throws IOException {
// return UILKit.getLoader().loadImageSync(url);
// }
// })
.imageDownloader(new ImageLoader() { //如果不设置,有默认的下载器
@Override
public Bitmap getBitmap(String url) throws IOException {
return UILKit.getLoader().loadImageSync(url);
}
})
.text(TEXT);
}

Expand Down
Binary file added art/xrichtext.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c0d18eb

Please sign in to comment.