編輯:關於Android編程
我們知道,在布局文件中設置textview的autolink及其類型,這時textivew上會顯示link的顏色,並且文字下面會有一條下劃線,表示可以點擊。而在我們在點擊textview時,應用將根據我們所設置的類型跳轉到對應的界面。但是有時,我們因界面需求,需要去掉界面上顯示的下劃線,並保持功能不變。
如果已經設置了autolink,那麼在textview當中再去設置TextPaint為無下劃線是無效的,我們可以看URLSpan所繼承的類ClickableSpan類的源碼,如下:
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); } }
所以要解決這個問題,就只有再設置一個沒有下劃線的Spannable對象。
首先,繼承一個CharacterStyle或其已實現的子類,重寫updateDrawState方法,代碼如下:
/* * Date: 14-9-4 * Project: Access-Control-V2 */ package cn.irains.access.v2.common; import android.text.TextPaint; import android.text.style.UnderlineSpan; /** * 無下劃線的Span * Author: msdx ([email protected]) * Time: 14-9-4 上午10:43 */ public class NoUnderlineSpan extends UnderlineSpan { @Override public void updateDrawState(TextPaint ds) { ds.setColor(ds.linkColor); ds.setUnderlineText(false); } }
NoUnderlineSpan mNoUnderlineSpan = new NoUnderlineSpan(); if (textview.getText() instanceof Spannable) { Spannable s = (Spannable) textview.getText(); s.setSpan(mNoUnderlineSpan, 0, s.length(), Spanned.SPAN_MARK_MARK); }
正常情況下Activity的聲明周期先來看看官方給出的聲明周期圖:這裡需要說明如下幾點:針對特定Activity,第一次啟動,回調如下:onCreate->onSt
1.EditView的自定義樣式其實這部分大家一定不陌生,通常默認的樣式都與我們的設計樣式有出入,那麼就需要我們自定義,通常我們使用Android:background=
技術是永無止境的,如果真的愛技術,那就勇敢的堅持下去。我很喜歡這句話,當我在遇到問題的時候、當我覺得代碼枯燥的時候,我就會問自己,到底是不是真的熱愛技術,這個時候,我心裡
前言由於某個項目需要,就寫了這個東西。大家看看有需求的直接拿走。效果1.支持拖動,支持點擊2.可定制的屬性還是比較全面的包裹差值器都可以設置,下面這個使用的是oversh