當前位置:首頁 » 安卓系統 » androidtextview下劃線

androidtextview下劃線

發布時間: 2022-12-22 01:12:22

A. Android帶下劃線的TextView

TextView 的 layout裡麵包含各種獲取字元位置、行數、列數等的方法
layout.getLineForOffset 獲取該字元所在行數.
layout.getLineBounds 獲取該行的外包矩形(Rect) 這樣 這個字元的頂部Y坐標就是rect的top 底部Y坐標就是rect的bottom
layout.getPrimaryHorizontal 獲取該字元左邊的X左邊
layout.getSecondaryHorizontal 獲取該字元字元的右邊X坐標

其中自定義屬性

B. android裡面怎麼給Textview設置超鏈接,還有字體顏色這些屬性啊

要給 TextView 加上效果,方式主要有幾種:
第一種,自動應用效果,使用 android:autolink 屬性,如:
java代碼
android:id="@+id/text1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:autoLink="all"

android:text="@string/link_text_auto"

/>
第二種,在文本中使用 標簽,如:
Java代碼


text2: This is some other

text, with a link specified

via an tag. Use a \"tel:\" URL

to dial a phone number
第三種,和第二種其實是一樣的,只不過將文本改在 JAVA 代碼中,如:
Java代碼

TextView t3 = (TextView) findViewById(R.id.text3);

t3.setText(

Html.fromHtml(

"text3: Text with a " +

"link " +

"created in the Java source code using HTML."));

t3.setMovementMethod(LinkMovementMethod.getInstance());
第四種,前面三種可以說都是自動的,而第四種就是純「手工」的了。通過創建 SpanableString 字元串,並在之上創 建一個或多個 Span 來實現豐富的效果。例子如下:
Java代碼

SpannableString ss = new SpannableString("text4: Click here to dial the phone.");

ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ss.setSpan(new URLSpan("tel:4155551212"), 13, 17,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

TextView t4 = (TextView) findViewById(R.id.text4);

t4.setText(ss);

t4.setMovementMethod(LinkMovementMethod.getInstance());
完整的代碼見 ApiDemo 吧,下面我提幾點需要注意的:
.setMovementMethod,此方法在需要響應用戶事件時使用,如點擊一個電話號碼就跳轉到撥號頁面。如果不執行這個方法是不會響應事件的,即便文本看著已經是下劃線藍色字了。
.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE,這是在 setSpan 時需要指定的 flag,它的意義我試了很久也沒試出來,睡個覺,今天早上才突然有點想法,試之,果然。它是用來標識在 Span 范圍內的文本前後輸入新的字元時是否把它們也應用這個效果。分別有 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前後都不包括)、Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前麵包括,後面不包括)、Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,後麵包括)、Spanned.SPAN_INCLUSIVE_INCLUSIVE(前後都包括)

在Android中,TextView是我們最常用的用來顯示文本的控制項。
一般情況下,TextView中的文本都是一個樣式。那麼如何對於TextView中各個部分的文本來設置字體,大小,顏色,樣式,以及超級鏈接等屬性呢?下面我們通過SpannableString的具體實例操作來演示一下。
res-layout-main.xml:
Java代碼

android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="horizontal">

android:id="@+id/myTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>
res-color-color.xml
res-color-linkcolor.xml:
Java代碼

android:color="#ffffff00"/>

android:color="#ff00ffff"/>
TextViewLinkActivity:
Java代碼

import java.io.IOException;

import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;

import android.content.res.ColorStateList;

import android.content.res.XmlResourceParser;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Color;

import android.graphics.drawable.Drawable;

import android.os.Bundle;

import android.text.SpannableString;

import android.text.Spanned;

import android.text.method.LinkMovementMethod;

import android.text.style.AbsoluteSizeSpan;

import android.text.style.BackgroundColorSpan;

import android.text.style.BulletSpan;

import android.text.style.DrawableMarginSpan;

import android.text.style.ForegroundColorSpan;

import android.text.style.IconMarginSpan;

import android.text.style.ImageSpan;

import android.text.style.RelativeSizeSpan;

import android.text.style.ScaleXSpan;

import android.text.style.StrikethroughSpan;

import android.text.style.StyleSpan;

import android.text.style.SubscriptSpan;

import android.text.style.SuperscriptSpan;

import android.text.style.TextAppearanceSpan;

import android.text.style.TypefaceSpan;

import android.text.style.URLSpan;

import android.text.style.UnderlineSpan;

import android.widget.TextView;

public class TextViewLinkActivity extends Activity {

TextView mTextView = null;

SpannableString msp = null;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mTextView = (TextView)findViewById(R.id.myTextView);

//創建一個 SpannableString對象

msp = new SpannableString("字體測試字體大小一半兩倍前景色背景色正常粗體斜體粗斜體下劃線刪除線x1x2電話郵件網站簡訊彩信地圖X軸綜合/bot");

//設置字體(default,default-bold,monospace,serif,sans-serif)

msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

msp.setSpan(new TypefaceSpan("serif"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//設置字體大小(絕對值,單位:像素)

msp.setSpan(new AbsoluteSizeSpan(20), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

msp.setSpan(new AbsoluteSizeSpan(20,true), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第二個參數boolean dip,如果為true,表示前面的字體大小單位為dip,否則為像素,同上。

//設置字體大小(相對值,單位:像素) 參數表示為默認字體大小的多少倍

msp.setSpan(new RelativeSizeSpan(0.5f), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //0.5f表示默認字體大小的一半

msp.setSpan(new RelativeSizeSpan(2.0f), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默認字體大小的兩倍

//設置字體前景色

msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置前景色為洋紅色

//設置字體背景色

msp.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設置背景色為青色

//設置字體樣式正常,粗體,斜體,粗斜體

msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //正常

msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗體

msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //斜體

msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 24, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗斜體

//設置下劃線

msp.setSpan(new UnderlineSpan(), 27, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//設置刪除線

msp.setSpan(new StrikethroughSpan(), 30, 33, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//設置上下標

msp.setSpan(new SubscriptSpan(), 34, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //下標

msp.setSpan(new SuperscriptSpan(), 36, 37, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //上標

//超級鏈接(需要添加setMovementMethod方法附加響應)

msp.setSpan(new URLSpan("tel:4155551212"), 37, 39, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //電話

msp.setSpan(new URLSpan("mailto:[email protected]"), 39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //郵件

msp.setSpan(new URLSpan("http://www..com"), 41, 43, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //網路

msp.setSpan(new URLSpan("sms:4155551212"), 43, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //簡訊 使用sms:或者smsto:

msp.setSpan(new URLSpan("mms:4155551212"), 45, 47, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //彩信 使用mms:或者mmsto:

msp.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //地圖

//設置字體大小(相對值,單位:像素) 參數表示為默認字體寬度的多少倍

msp.setSpan(new ScaleXSpan(2.0f), 49, 51, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默認字體寬度的兩倍,即X軸方向放大為默認字體的兩倍,而高度不變

//設置字體(依次包括字體名稱,字體大小,字體樣式,字體顏色,鏈接顏色)

ColorStateList csllink = null;

ColorStateList csl = null;

XmlResourceParser xppcolor=getResources().getXml (R.color.color);

try {

csl= ColorStateList.createFromXml(getResources(),xppcolor);

}catch(XmlPullParserException e){

// TODO: handle exception

e.printStackTrace();

}catch(IOException e){

// TODO: handle exception

e.printStackTrace();

}

XmlResourceParser xpplinkcolor=getResources().getXml(R.color.linkcolor);

try {

csllink= ColorStateList.createFromXml(getResources(),xpplinkcolor);

}catch(XmlPullParserException e){

// TODO: handle exception

e.printStackTrace();

}catch(IOException e){

// TODO: handle exception

e.printStackTrace();

}

msp.setSpan(new TextAppearanceSpan("monospace",android.graphics.Typeface.BOLD_ITALIC, 30, csl, csllink), 51, 53, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//設置項目符號

msp.setSpan(new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN), 0 ,msp.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第一個參數表示項目符號佔用的寬度,第二個參數為項目符號的顏色

//設置圖片

Drawable drawable = getResources().getDrawable(R.drawable.icon);

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

msp.setSpan(new ImageSpan(drawable), 53, 57, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

mTextView.setText(msp);

mTextView.setMovementMethod(LinkMovementMethod.getInstance());

}

}

C. android TextView中如何設置下劃線

1. TextView tv=new TextView(this);
tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下劃線
tv.setText("使用代碼實現下劃線樣式");
tv.setTextColor(Color.WHITE);

2. tv=new TextView(this);
tv.setText(Html.fromHtml("<u>使用html實現下劃線樣式</u>"));

D. android怎麼實現textview後面有條線

設置textview的格式 可以設置下劃線,刪除線 等等格式
textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG |Paint.ANTI_ALIAS_FLAG);

E. 如何在android上實現PDF的下劃線,批註功能

你在導成PDF時,在xunjeiPDF編輯器中,先把滑鼠放在郵箱名稱上,這時滑鼠會變成小手指,然後你點右鍵,取消超鏈接……導成PDF時就不會有下劃線了。

F. Android-EditView文本編輯控制項詳解

EditView 是Android開發當中運用到最多的控制項之一,主要用戶界面上的輸入框。

View --> TextView --> EditView 。

1.設置提示文本:

2.設置hint提示文字顏色:

3.設置輸入文本後的文字顏色:

4.設置輸入文本後的字體大小:

5.設置輸入文本後的字體樣式,bold(加粗),italic(傾斜),normal(默認是正常字體)。

6.設置被選中字體的顏色.默認為 Theme 主題中的 「colorAccent」的顏色。

7.設置被游標的顏色.默認為 Theme 主題中的 「colorAccent」的顏色。

8.設置文本的水平縮放系數。

9.設置hint提示文本的字體.normal(默認)\monospace\sans\serif。

10.設置EditText背景."@null"設置背景為透明.當我們設置背景後,EditText的下劃線就會消失。

11.設置文本的顏色,字體,大小和樣式。

12.設置只接收指定的文本內容,適合只能輸出特定內容的需求。

13.設置文本的類型,用於幫助輸入法顯示合適的鍵盤類型。

14.設置EditText最多接受的文本的個數:

15.設置EditText顯示的行數,設置兩行就顯示兩行,即使第二行沒有數據。

16.設置行間距的倍數. 如設置成1.5倍。

17.設置右下角IME動作與編輯框相關的動作,如actionDone右下角將顯示一個「完成」,而不設置默認是一個回車符號.

G. 如何給Android的textView設置下劃線中劃線

在做商城項目是需要用到原價格以及降價後的價格,不可避免用到下劃線 textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下劃線 textView.getPaint().setAntiAlias(true);//抗鋸齒 textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG); //中劃線 setFlags(Paint. STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG); // 設置中劃線並加清晰 textView.getPaint().setFlags(0); // 取消設置的的劃線

H. Android中EditText如何去除邊框添加下劃線

et1 你定義的是一個 EditText 的控制項 現在 你要取的是在listView上的一個ID為et_1的控制項 你看看你XML裡面 是如何定義的?是不是在listViewl裡面添加了文本控制項? 如果為空 很明顯 就是list控制項裡面 沒有載入EditText這控制項 或者你定義了 但是R.id.et_1沒報錯 說明你引用R文件裡面的控制項ID 引用了同名位置卻不能的東西

熱點內容
雅奇sql 發布:2025-04-04 11:13:31 瀏覽:679
安卓手機怎麼樣拍攝電影 發布:2025-04-04 11:12:24 瀏覽:160
如何盜取蘋果手機截屏密碼 發布:2025-04-04 11:10:51 瀏覽:154
怎麼自己寫個簡單的安卓軟體 發布:2025-04-04 11:10:05 瀏覽:428
外派管理員密碼在哪裡 發布:2025-04-04 11:02:07 瀏覽:520
阿里雲伺服器與基站 發布:2025-04-04 10:56:19 瀏覽:67
伺服器版開票系統地址怎麼更改 發布:2025-04-04 10:39:10 瀏覽:999
vb綁定資料庫 發布:2025-04-04 10:36:52 瀏覽:805
javahttpclient 發布:2025-04-04 10:26:52 瀏覽:626
c操作資料庫的類 發布:2025-04-04 10:26:44 瀏覽:933