StylePhrase is an Android string resource templating library
在项目中,我们经常会碰到一行文本,部分文字要显示不同的颜色和大小,或者其他样式。使用StylePhrase可以很方便的解决这个问题。只需要把需要显示其它样式的文本使用分割符包裹一下,就可以对文本进行各种操作。
本库主要基于以下项目做了修改,更方便使用和扩展:
https://github.com/square/phrase
https://github.com/THEONE10211024/ColorPhrase
device-one-separator device-one-separator
device-one-separator device-one-separator
注意:对于比较特殊的字符,使用StylePhrase会导致一些问题,尽量使用{}、[]和()作为分割符
大部分时候,一行文本我们需要显示2种或3种样式,所以StylePhrase默认提供两种分割符{}和[],当然你也可以修改默认的分割符。为了方便使用,StylePhrase默认提供了setInnerFirstColor、setInnerFirstSize、setInnerSecondColor、setInnerSecondSize
一种操作符
// 永生不过是场{幻梦},唯吾{所爱}不朽 val oneSeparatorString = getString(R.string.text_phrase_one) val colorAndSize = StylePhrase(oneSeparatorString) .setInnerFirstColor(Color.BLUE) .setInnerFirstSize(20) tv_content.text = colorAndSize.format()
二种操作符
// 何以{缘起}?何以[缘灭]?当以{剑歌}问之 val twoSeparatorString = getString(R.string.text_phrase_two) val colorAndSize = StylePhrase(twoSeparatorString) .setInnerFirstColor(Color.BLUE) .setInnerFirstSize(20) .setInnerSecondColor(Color.RED) .setInnerSecondSize(25) tv_content.text = colorAndSize.format()
多种操作符
// 凤兮{凤兮}归[故乡],遨(游)四海(求其凰) val colorAndSize = StylePhrase(multiSeparatorString) .setInnerFirstColor(Color.BLUE) .setInnerFirstSize(20) .setInnerSecondColor(Color.RED) .setInnerSecondSize(25) val builder = StylePhrase.Builder() builder.separator = "()" builder.setColor(Color.GREEN) builder.setSize(18) colorAndSize.addBuilder(builder) tv_content.text = colorAndSize.format()
更多操作可以参考DEMO
使用Gradle进行引用
1.在你根目录的build.gradle文件添加代码: maven { url 'https://www.jitpack.io' }
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}2.在你的工程目录添加
StylePhrase依赖appcompat-v7,所以需要同时引用appcompat-v7包
dependencies {
implementation 'com.github.yzbzz:StylePhrase:1.0.3'
implementation 'com.android.support:appcompat-v7:$version'
}你也可以直接下载StylePhrase类放到你的工程中