highlights every View which inherits TextView(i.e. TextView, Button, EditText). Set targets and Colors. Then highlight any word.
Android API ≥ 2.3 (API Level 9)
You can import TextHighlighter from jcenter.
repositories {
jcenter()
}
dependencies {
compile 'com.xeoh.android:text-highlighter:1.0.3'
}
// Initialize TextHighlighter
private TextHighlighter textHighlighter = new TextHighlighter()
.setBackgroundColor(Color.parse("#FFFF00"))
.setForegroundColor(Color.RED)
.setBold(true)
.setItalic(true)
.addTarget(findViewById(R.id.anyTextView))
.highlight("word", TextHighlighter.BASE_MATCHER);
// invalidate after add more targets
textHighlighter.addTarget(findViewById(R.id.anyButton))
.invalidate(TextHighlighter.BASE_MATCHER);
// invalidate after color changes
textHighlighter.setForegroundColor(Color.GREEN)
.invalidate(TextHighlighter.BASE_MATCHER);
// change matcher to case insensitive
textHighlighter.invalidate(TextHighlighter.CASE_INSENSITIVE_MATCHER);
/*
You can use multiple TextHighlighter for multiple keyword or multiple
styles. However, if two highlighter highlights same word, priority depends
on order of highlight(...) function call
*/
- 1.0.0 Testing version. (Not published)
- 1.0.1 First Deploy.
- 1.0.2 Add bold and italic feature.
- 1.0.3 Fix Performance issue for large amount of list items.
TextHighlighter is available under the MIT license. See the LICENSE file for more info.