colorfulText
lib for spannableString
如果你對部落格不趕興趣
直接去下載下傳
能幹什麼?
1、利用SpannableString 、SpannableBuilder、ClickableSpan 實作TextView 部分字元高亮 、表情替換
2、 封裝 spannableString 其他的功能 實作 文字部分字型 、換色 、背景 、style、下劃線、删除線、替換圖檔、插入圖檔 等功能
3、封裝、分離 TextView 部分字型内容點選事件及TextView 點選事件
內建
allprojects {
repositories {
jcenter()
}
}
dependencies {
implementation 'org.zhx.common:colorfulText:1.0.0'
}
非Androidx 項目 :
gradle.properties中 添加:
android.useAndroidX=true
android.enableJetifier=true
單一 屬性 修改
Builder builder = new Builder(this)
.source("顔色大小背景粗細插入圖檔中劃線下劃線點選")
.target("顔色")// 變色的 文字
.textColor(R.color.colorAccent);
TextView textView = findViewById(R.id.test_text1);
builder.bind(textView);
多屬性 修改
Builder builder = new Builder(this)
.targets("點選")// 變色的 文字
.textColor(R.color.colorPrimary)
.pressdColor(R.color.colorAccent)
.spanClick(new TargetClick() {
@Override
public void onClick(String target) {
Toast.makeText(MainActivity.this, target, Toast.LENGTH_SHORT).show();
}
});
Builder builder1 = new Builder(this)
.targets("顔色")// 變色的 文字
.textColor(R.color.colorAccent)
.pressdColor(R.color.colorPrimary)
.spanClick(new TargetClick() {
@Override
public void onClick(String target) {
Toast.makeText(MainActivity.this, target, Toast.LENGTH_SHORT).show();
}
});
//.......所有builder 都可以疊加
TextView textView = findViewById(R.id.test_text7);
ColorfulText text = new ColorfulText();
text.init("顔色大小背景粗細插入圖檔中劃線下劃線點選");
text.onClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "textView", Toast.LENGTH_SHORT).show();
}
};
//...............所有builder 都可以疊加
text.creat(builder, builder1);
text.into(textView);
表情 替換 按指定的 正規表達式替換
Builder builder = new Builder(this);
builder.source("發送表情[色][色][色][色][吉他][吉]");
builder.pattenStr("\\[[^\\]]+\\]", new OnPatternFind() {
@Override
public int onFind(String target) {
Log.i("!!!!", target);
return "[色]".equals(target) ? R.mipmap.emoji_02 : R.mipmap.emoji_107;
}
});
TextView textView = findViewById(R.id.test_text11);
builder.bind(textView);
多關鍵字 修改
TextView textView = findViewById(R.id.test_text6);
Builder builder = new Builder(this)
.source("顔色大小背景粗細插入圖檔中劃線下劃線點選")
.targets("點選", "顔色")// 變色的 文字
.textColor(R.color.colorPrimary)
.pressdColor(R.color.colorAccent)
.spanClick(new TargetClick() {
@Override
public void onClick(String target) {
Toast.makeText(MainActivity.this, target, Toast.LENGTH_SHORT).show();
}
});
builder.bind(textView);
未完待續 檢視demo