bareas,我的超级情人,啤酒花 电影
很多时候我们开发中使用TextView的autoLink属性,可以很方便的识别出一段文本中的网址、电话、邮箱等等。但是通常情况下系统自动识别的link会有下划线,那么该如何去除这个下划线呢?
首先,我们需要知道这个下划线哪里来的,直接打开URLSpan的父类ClickableSpan:
/* * Copyright (C) 2008 The Android Open Source Project * * 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 * * https://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. */ package android.text.style; import android.text.TextPaint; import android.view.View; /** * If an object of this type is attached to the text of a TextView * with a movement method of LinkMovementMethod, the affected spans of * text can be selected. If clicked, the {@link #onClick} method will * be called. */ public abstract class ClickableSpan extends CharacterStyle implements UpdateAppearance { /** * Performs the click action associated with this span. */ public abstract void onClick(View widget); /** * Makes the text underlined and in the link color. */ @Override public void updateDrawState(TextPaint ds) { ds.setColor(ds.linkColor); ds.setUnderlineText(true); } }
上述41行可以看到通过ds.setUnderlineText设置了下划线,找到了原因,就比较好办了。我们自己写一个类重写updateDrawState即可:
import android.annotation.SuppressLint; import android.text.TextPaint; import android.text.style.URLSpan; import android.text.style.UnderlineSpan; /** * * * @author pzyoung * */ @SuppressLint("ParcelCreator") public class NoUnderlineSpan extends URLSpan { public NoUnderlineSpan(String url) { super(url); } @Override public void updateDrawState(TextPaint ds) { if (ds != null) { ds.setColor(ds.linkColor); ds.setUnderlineText(false); } } }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论