摘要:本文将带你了解Android应用开发Android开发中如何去除autoLink的下划线,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android开发中如何去除autoLink的下划线,希望本文对大家学Android有所帮助。
<
很多时候我们开发中使用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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号