AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.
Java
Latest commit 6a11560 Nov 29, 2016 @armcha Release 0.3.0
Permalink
Failed to load latest commit information.
.idea Added option to set under line enabled Oct 11, 2016
app Release 0.3.0 Nov 29, 2016
autolinklibrary Release 0.3.0 Nov 29, 2016
gradle/wrapper Initial commit Sep 25, 2016
screens Added sample akp Oct 16, 2016
.gitignore Initial commit Sep 25, 2016
README.md Release 0.3.0 Nov 29, 2016
build.gradle Release 0.3.0 Nov 29, 2016
gradle.properties Initial commit Sep 25, 2016
gradlew Initial commit Sep 25, 2016
gradlew.bat Initial commit Sep 25, 2016
settings.gradle Added library module Sep 25, 2016

README.md

AutoLinkTextView

Android Arsenal

AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.

The current minSDK version is API level 14 Android 4.0 (ICE CREAM SANDWICH).

Download sample apk

Features

  • Default support for Hashtag, Mention, Link, Phone number and Email
  • Support for custom types via regex
  • Ability to set text color
  • Ability to set pressed state color

Download


Gradle:

compile 'com.github.armcha:AutoLinkTextView:0.3.0'

Setup and usage

Add AutoLinkTextView to your layout

    <com.luseen.autolinklibrary.AutoLinkTextView
         android:id="@+id/active"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" />
AutoLinkTextView autoLinkTextView = (AutoLinkTextView) findViewById(R.id.active);

Set up mode or modes

autoLinkTextView.addAutoLinkMode(
                AutoLinkMode.MODE_PHONE);

Set text to AutoLinkTextView

autoLinkTextView.setAutoLinkText(getString(R.string.long_text));

Set AutoLinkTextView click listener

autoLinkTextView.setAutoLinkOnClickListener(new AutoLinkOnClickListener() {
            @Override
            public void onAutoLinkTextClick(AutoLinkMode autoLinkMode, String matchedText) {

            }
        });

Customizing

AutoLinkModes

AutoLinkMode.MODE_PHONE


AutoLinkMode.MODE_HASHTAG


AutoLinkMode.MODE_URL


AutoLinkMode.MODE_MENTION


AutoLinkMode.MODE_EMAIL


AutoLinkMode.MODE_CUSTOM

if you use custom mode, you should also add custom regex,

autoLinkTextView.setCustomRegex("\\sAllo\\b");

Note:Otherwise MODE_CUSTOM will return MODE_URL

You can also use multiple types

autoLinkTextView.addAutoLinkMode(
                AutoLinkMode.MODE_HASHTAG,
                AutoLinkMode.MODE_PHONE,
                AutoLinkMode.MODE_URL,
                AutoLinkMode.MODE_MENTION,
                AutoLinkMode.MODE_CUSTOM);

You can also change text color for autoLink mode

autoLinkTextView.setHashtagModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setPhoneModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setCustomModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setUrlModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setMentionModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setEmailModeColor(ContextCompat.getColor(this, R.color.yourColor));

And also autoLink text pressed state color

autoLinkTextView.setSelectedStateColor(ContextCompat.getColor(this, R.color.yourColor));

Enable under line

autoLinkTextView.enableUnderLine();


Contact

Pull requests are more than welcome. Please fell free to contact me if there is any problem when using the library.

License

  Auto Link TextView library for Android
  Copyright (c) 2016 Arman Chatikyan (https://github.com/armcha/AutoLinkTextView).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.