Android-TextView-LinkBuilder, 在TextView中定义可以单击链接的极其简单的方法

分享于 

7分钟阅读

GitHub

  繁體 雙語
Insanely easy way to define clickable links within a TextView.
  • 源代码名称:Android-TextView-LinkBuilder
  • 源代码网址:http://www.github.com/klinker24/Android-TextView-LinkBuilder
  • Android-TextView-LinkBuilder源代码文档
  • Android-TextView-LinkBuilder源代码下载
  • Git URL:
    git://www.github.com/klinker24/Android-TextView-LinkBuilder.git
    Git Clone代码到本地:
    git clone http://www.github.com/klinker24/Android-TextView-LinkBuilder
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/klinker24/Android-TextView-LinkBuilder
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Android LinkBuilder Android Arsenal

    Screenshot

    TextView 中创建可以点击链接的简单方法。

    在创建 Twitter的时,我遇到的最困难的事情之一就是创建基于特定文本的点击链接。 幸好,我让任何人都可以将这种风格的风格应用到他们的TextView 中。

    特性

    类似于所有大玩家如何做它,这个库允许你创建可以点击的链接,任何组合的组合,在一个页面中的。

    • 指定 TextView 中特定单词的长和短点击动作
    • 当用户触摸文本时,通过突出显示文本提供用户反馈
    • 匹配单个 String 或者使用正则表达式设置指向任何符合该 Pattern的文本的可以单击链接
    • 更改链接文本的颜色
    • 当用户触摸文本时更改链接文本的颜色
    • 当用户触摸文本时,修改文本突出显示的透明度
    • 设置是否要带下划线的文本
    • 设置是否要加粗文本
    • Activity 主题的默认链接颜色

    TextView autolink上使用这个库的主要优势是你可以链接任何东西,而不仅仅是网络地址。电子邮件和电话号码。 它还提供颜色定制和触摸反馈。

    安装

    有两种使用此库的方法:

    作为Gradle依赖项

    这是最好的方法。 简单地添加:

    dependencies {
     compile 'com.klinkerapps:link_builder:1.6.1'}

    到项目依赖项并运行 gradle build 或者 gradle assemble

    作为库项目

    下载源代码并将它的导入 Eclipse 中的库项目。 项目可以在图书馆中找到。 有关如何执行这里操作的更多信息,请阅读这里的

    示例用法

    功能可以在示例中找到。

    对于我在Talon使用的正规表达式 列表,你可以在这里使用

    // Create the link rule to set what text should be linked.// can use a specific string or a regex patternLink link =newLink("click here")
    . setTextColor(Color.parseColor("#259B24")) // optional, defaults to holo blue. setTextColorOfHighlightedLink(Color.parseColor("#0D3D0C")) // optional, defaults to holo blue. setHighlightAlpha(.4f) // optional, defaults to. 15f. setUnderlined(false) // optional, defaults to true. setBold(true) // optional, defaults to false. setOnLongClickListener(newLink.OnLongClickListener() {
     @OverridepublicvoidonLongClick(StringclickedText) {
     // long clicked }
     })
    . setOnClickListener(newLink.OnClickListener() {
     @OverridepublicvoidonClick(StringclickedText) {
     // single clicked }
     });TextView demoText = (TextView) findViewById(R.id.test_text);// create the link builder object add the link ruleLinkBuilder.on(demoText)
    . addLink(link)
    . build(); // create the clickable links

    使用 1.1.0版本,可以从 String 创建 CharSequence,而不是直接创建链接并将它的应用到 TextView。 请不要忘记在应用了 CharSequence 之后设置 TextView的移动方法,否则链接将无法单击。

    // find the text view. Used to create the link builderTextView demoText = (TextView) findViewById(R.id.test_text);// Add the links and make the links clickableCharSequence sequence =LinkBuilder.from(this, demoText.getText().toString())
    . addLinks(getExampleLinks())
    . build();
    demoText.setText(sequence);// if you forget to set the movement method, then your text will not be clickable!demoText.setMovementMethod(TouchableMovementMethod.getInstance());

    如果希望为链接设置默认文本颜色,而不在每个 Link 对象上手动输入它,则可以从 Activity 主题设置。

    <stylename="LinkBuilderExampleTheme"parent="android:Theme.Holo.Light">
     <itemname="linkBuilderStyle">@style/LinkBuilder</item>
    </style>
    <stylename="LinkBuilder">
     <itemname="defaultLinkColor">#222222</item>
     <itemname="defaultTextColorOfHighlightedLink">#444444</item>
    </style>

    与的使用情况

    默认情况下,LinkBuilder 将使用 TextView 上的所有触摸事件。 这意味着如果你尝试实现 ListView.OnItemClickListener,那么它将永远不会被调用。 解决方法是在布局中实现 LinkConsumableTextView 而不是普通的TextView。

    如果你点击了 TextView 中的链接,我的LinkConsumableTextView 将只使用触摸事件。 否则,它会将触摸事件延迟到父级,这允许你使用 ListView.OnItemClickListener 方法。

    请使用请求请求这个存储库,并使用 contribute。 功能可以使用问题请求。 所有的代码。评论和评论都非常重要。

    变更日志

    可以在这里找到库的完整变更记录( )。

    许可证

    
    Copyright 2015 Luke Klinker
    
    
    
    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.
    
    
    
    

    文本  TEX  DEF  link  点击  links  
    相关文章