轻松实现在一个TextView内定义可点击的链接:Android-TextView-LinkBuilder

jopen 9年前

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

项目主页:http://www.open-open.com/lib/view/home/1435647449778