轻松实现在一个TextView内定义可点击的链接:Android-TextView-LinkBuilder
Android-TextView-LinkBuilder提供一种非常简便的方式来在一个TextView内定义可点击的链接。
Features
Similar to how all the big players do it (Google+, 推ter, cough Talon cough), this library allows you to create clickable links for any combination of Strings within a TextView.
- Specify long and short click actions of a specific word within your TextView
- Provide user feedback by highlighting the text when the user touches it
- Match single strings or use a regular expression to set clickable links to any text conforming to that pattern
- Change the color of the linked text
- Modify the transparency of the text's highlighting when the user touches it
- Set whether or not you want the text underlined
The main advantage to using this library over TextView's autolink functionality is that you can link anything, not just web address, emails, and phone numbers. It also provides color customization and touch feedback.
Installation
There are two ways to use this library:
As a Gradle dependency
This is the preferred way. Simply add:
// make sure you have added the snapshot repository repositories { maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } dependencies { compile 'com.klinkerapps:link_builder:1.0.3-SNAPSHOT@aar' }
to your project dependencies and rungradle buildorgradle assemble.
As a library project
Download the source code and import it as a library project in Eclipse. The project is available in the folder library. For more information on how to do this, read here.
Example Usage
Functionality can be found in the example's MainActivity
// Create the link rule to set what text should be linked. // can use a specific string or a regex pattern Link link = new Link("click here") .setTextColor(Color.parseColor("#259B24")) // optional, defaults to holo blue .setHighlightAlpha(.4f) // optional, defaults to .15f .setUnderlined(false) // optional, defaults to true .setOnLongClickListener(new Link.OnLongClickListener() { @Override public void onLongClick(String clickedText) { // long clicked } }) .setOnClickListener(new Link.OnClickListener() { @Override public void onClick(String clickedText) { // single clicked } }); // create the link builder object add the link rule new LinkBuilder(textView) .addLink(link) .build(); // create the clickable links