Skip to content
A simple custom Android TextView that highlights content such as Mention, Hashtag, Phone, Email and Url.
Kotlin
Branch: master
Clone or download
Latest commit 67376e6 Jul 26, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea add highlight text Jul 26, 2019
app add highlight text Jul 26, 2019
art new art images added Jul 22, 2019
gradle/wrapper initial commit Jul 19, 2019
socialtextview add highlight text Jul 26, 2019
.gitignore initial commit Jul 19, 2019
LICENSE.txt apache license added Jul 22, 2019
README.md Update README.md Jul 23, 2019
build.gradle initial commit Jul 19, 2019
gradle.properties initial commit Jul 19, 2019
gradlew initial commit Jul 19, 2019
gradlew.bat initial commit Jul 19, 2019
settings.gradle initial commit Jul 19, 2019

README.md

SocialTextView

API Android Arsenal Android Weekly

A simple custom Android TextView that highlights content such as Mention, Hashtag, Phone, Email and Url.

Setup

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
   implementation 'com.github.hasankucuk:SocialTextView:1.0.0'
}

Usage

    <com.hasankucuk.socialtextview.SocialTextView
        android:id="@+id/socialTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:text="This project was #developed by @hasankucuk as #opensource. \n
        hasann.kucuk@yandex.ru \n
        https://medium.com/@hasann.kucuk \n
        hasan@gmail.com \n
        +1 123456789"
        app:emailColor="#FF9E80"
        app:hashtagColor="#82B1FF"
        app:linkType="mention|hashtag|phone|email|url"
        app:mentionColor="#BCBCCF"
        app:normalTextColor="#18181F"
        app:phoneColor="#03A9F4"
        app:urlColor="#8BC34A" />

only for linking of the mention you specify

      val mentions: MutableList<String> = arrayListOf()
        mentions.add("@hasankucuk")
        socialTextView.setLinkedMention(mentions)

only for linking of the hashtag you specify

     val hashtags: MutableList<String> = arrayListOf()
        hashtags.add("#developed")
        socialTextView.setLinkedHashtag(hashtags)

To capture click events

        socialTextView.setLinkClickListener(object : SocialTextView.LinkClickListener {
            override fun onLinkClicked(linkType: LinkedType, matchedText: String) {

                when (linkType) {
                    TEXT -> {
                        Toast.makeText(this@MainActivity, "You are clicked type -> TEXT and value ->$matchedText", Toast.LENGTH_SHORT).show()
                    }
                    HASHTAG -> {
                        Toast.makeText(this@MainActivity, "You are clicked type -> HASHTAG and value ->$matchedText", Toast.LENGTH_SHORT).show()
                    }
                    MENTION -> {
                        Toast.makeText(this@MainActivity, "You are clicked type -> MENTION and value ->$matchedText", Toast.LENGTH_SHORT).show()
                    }
                    URL -> {
                        Toast.makeText(this@MainActivity, "You are clicked type -> URL and value ->$matchedText", Toast.LENGTH_SHORT).show()
                    }
                    EMAIL -> {
                        Toast.makeText(this@MainActivity, "You are clicked type -> EMAIL and value ->$matchedText", Toast.LENGTH_SHORT).show()
                    }
                    PHONE -> {
                        Toast.makeText(this@MainActivity, "You are clicked type -> PHONE and value ->$matchedText", Toast.LENGTH_SHORT).show()
                    }
                }
            }
        })

Attributes

Attribute Type Summary
app:linkType int hashtag-mention-url-phone-email
app:underLine int true or false
app:normalTextColor int Sets the text color of a normal text color.
app:hashtagColor color Sets the text color of a hashtag link in the text.
app:mentionColor color Sets the text color of a mention link in the text.
app:phoneColor color Sets the text color of a phone number link in the text.
app:emailColor color Sets the text color of an email link in the text.
app:urlColor color Sets the text color of a web url link in the text.
app:selectedColor color Sets the text color of a selected link in the text.

License

Copyright 2019 Hasan Küçük

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.
You can’t perform that action at this time.