androidautolink
1. 安卓手機Autolink APK如何互聯
安卓手機想要進行互聯功能,需要兩台設備,在同一個WIFI當中進行連接。一般選擇你想連接的設備,第三方APP點擊互聯就可以了。
2. android textview顯示富文本支持哪些標簽
在TextView類中預定義了一些類似HTML的標簽,通過這些標簽,可以使TextView控制項顯示不同的顏色、大小、字體的文字。
<font>:設置顏色和字體
<big>:設置大號字
<small>:設置小號字
<i>:斜體
<b>:粗體
<tt>:等寬字體(Monospace)
<br>:換行(行與行之間沒有空行)
<p>:換行(行與行之間的空行)
<a>:鏈接地址
<img>:插入圖像
這些標簽雖然和HTML的標簽類似,但並不具備HTML標簽的全部功能。如<font>標簽只支持color和face兩個屬性。
在使用這些標簽時不能將帶這些標簽的字元串直接賦值到TextView上,而需要使用Html.frmHtml方法將帶標簽的字元串轉換成CharSequence對象,再賦值給TextView。
如果想在顯示的文本中將URL、E-mail、電話等特殊內容高亮顯示,並在單擊時觸發相應的動作(如單擊電話會直接在撥號界面顯示電話號碼),可以設置<TextView>標簽的android:autoLink屬性,該屬性可設置的屬性值如下:
none:不匹配任何鏈接(默認) web:匹配Web網址 email:匹配E-mail地址
phone:匹配電話號碼 map:匹配映射地址 all:匹配所有的鏈接
示例:
java">{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtFirst=(TextView)findViewById(R.id.txtFirst);
Stringhtml="<fontcolor='red'>樣式一</font><br>";
html+="<fontcolor='#0000FF'><big><i>樣式二</i></big><font>";
html+="<fontcolor='@"+android.R.color.white+"'><tt><b><big><u>樣式三</u></big></b></tt></font><br>";
html+="<big><ahref='http://blog.csdn.net/a_mean'>我的博客:http://blog.csdn.net/a_mean</a></big>";
CharSequencecharSequence=Html.fromHtml(html);
txtFirst.setText(charSequence);
//該語句在設置後必加,不然沒有任何效果
txtFirst.setMovementMethod(LinkMovementMethod.getInstance());
}
}
如圖:
3. android 如何設置TextView中字體在不同狀態下的顏色
TextView的字體設置方法:
1、直接通過配置文件設置
2、在Activity類中進行設置
第一種方式很簡單,用於靜態或初始文字顏色的設置,方法如下:
main.xml
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/white"
>
<TextView
android:id="@+id/tv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:autoLink="all"
android:textColor="@color/red"
/>
</LinearLayout>
color.xml
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#FF0000</color>
</resources>
drawable.xml
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="white">#FFFFFF</drawable>
<drawable name="dark">#000000</drawable>
<drawable name="red">#FF0000</drawable>
</resources>
strings.xml
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">地址:http://yahaitt.javaeye.com</string>
<string name="app_name">丫梨的筆記本</string>
</resources>
上面將資源部分分成了3個部分,目的是為了清晰,當然你也可以只建一個xml文件放在res目錄下,而且文件名稱可以隨便命名。
注意兩個地方:
1、main.xml的TextView標簽中:
android:textColor="@color/red"
2、color.xml中:
<color name="red">#FF0000</color>
@color指獲取資源文件中(所有res目錄下的xml文件)的<color>標簽
/red指在標簽下找其name值為red的內容,此時其值為#FF0000
因此,這里我們還可以這樣做:
android:textColor="@drawable/red"
@drawable指獲取資源文件中<drawable>標簽
/red指在標簽下找其name值為red的內容
以此類推,相信你也就知道了如果是在strings.xml中該怎麼做了。
下面看看第二種方式:在Activity類中進行設置
1、先將main.xml改成如下,即去掉android:textColor="@color/red":
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/white"
>
<TextView
android:id="@+id/tv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:autoLink="all"
/>
</LinearLayout>
2、修改Activity的onCreate方法,這里我的Activity是Study03_01,原始代碼如下:
Java代碼
package yahaitt.study03_01;
import android.app.Activity;
import android.os.Bundle;
public class Study03_01 extends Activity { @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
第一步:獲得文本控制項TextView,取名為tv
第二步:通過TextView的setTextColor方法進行文本顏色的設置,這里可以有3種方式進行設置:
第1種:tv.setTextColor(android.graphics.Color.RED);//系統自帶的顏色類
第2種:tv.setTextColor(0xffff00ff);//0xffff00ff是int類型的數據,分組一下0x|ff|ff00ff,0x是代表顏色整數的標記,ff是表示透明度,ff00ff表示顏色,注意:這里ffff00ff必須是8個的顏色表示,不接受ff00ff這種6個的顏色表示。
第3種:tv.setTextColor(this.getResources().getColor(R.color.red));//通過獲得資源文件進行設置。根據不同的情況R.color.red也可以是R.string.red或者R.drawable.red,當然前提是需要在相應的配置文件里做相應的配置,如:
<color name="red">#FF0000</color>
<drawable name="red">#FF0000</drawable>
<string name="red">#FF0000</string>
詳細的代碼如下:
Java代碼
package yahaitt.study03_01;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
public class Study03_01 extends Activity {
private TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView)this.findViewById(R.id.tv01);
// tv.setTextColor(Color.RED);
// tv.setTextColor(0xff000000);
4. Android屬性匯總
TextView屬性匯總
android:autoLink設置是否當文本為URL鏈接/email/電話號碼/map時,文本顯示為可點擊的鏈接。可選值(none/web/email/phone/map/all)
android:autoText如果設置,將自動執行輸入值的拼寫糾正。此處無效果,在顯示輸入法並輸入的時候起作用。
android:bufferType指定getText()方式取得的文本類別。選項editable 類似於StringBuilder可追加字元,也就是說getText後可調用append方法設置文本內容。spannable 則可在給定的字元區域使用樣式,參見這里1、這里2。
android:capitalize設置英文字母大寫類型。此處無效果,需要彈出輸入法才能看得到,參見EditView此屬性說明。
android:cursorVisible設定游標為顯示/隱藏,默認顯示。
android:digits設置允許輸入哪些字元。如「1234567890.+-*/% ()」
android:drawableBottom在text的下方輸出一個drawable,如圖片。如果指定一個顏色的話會把text的背景設為該顏色,並且同時和background使用時覆蓋後者。
android:drawableLeft在text的左邊輸出一個drawable,如圖片。
android:drawablePadding設置text與drawable(圖片)的間隔,與drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可設置為負數,單獨使用沒有效果。
android:drawableRight在text的右邊輸出一個drawable。
android:drawableTop在text的正上方輸出一個drawable。
android:editable設置是否可編輯。
android:editorExtras設置文本的額外的輸入數據。
android:ellipsize設置當文字過長時,該控制項該如何顯示。有如下值設置:」start」—-省略號顯示在開頭;」end」 ——省略號顯示在結尾;」middle」—-省略號顯示在中間;」marquee」 ——以跑馬燈的方式顯示(動畫橫向移動)
android:freezesText設置保存文本的內容以及游標的位置。
android:gravity設置文本位置,如設置成「center」,文本將居中顯示。
android:hintText為空時顯示的文字提示信息,可通過textColorHint設置提示信息的顏色。此屬性在 EditView中使用,但是這里也可以用。
android:imeOptions附加功能,設置右下角IME動作與編輯框相關的動作,如actionDone右下角將顯示一個「完成」,而不設置默認是一個回車符號。這個在EditView中再詳細說明,此處無用。
android:imeActionId設置IME動作ID。
android:imeActionLabel設置IME動作標簽。
android:includeFontPadding設置文本是否包含頂部和底部額外空白,默認為true。
android:inputMethod為文本指定輸入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是這里報錯找不到。
android:inputType設置文本的類型,用於幫助輸入法顯示合適的鍵盤類型。在EditView中再詳細說明,這里無效果。
android:linksClickable設置鏈接是否點擊連接,即使設置了autoLink。
android:marqueeRepeatLimit在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為 marquee_forever時表示無限次。
android:ems設置TextView的寬度為N個字元的寬度。這里測試為一個漢字字元寬度
android:maxEms設置TextView的寬度為最長為N個字元的寬度。與ems同時使用時覆蓋ems選項。
android:minEms設置TextView的寬度為最短為N個字元的寬度。與ems同時使用時覆蓋ems選項。
android:maxLength限制顯示的文本長度,超出部分不顯示。
android:lines設置文本的行數,設置兩行就顯示兩行,即使第二行沒有數據。
android:maxLines設置文本的最大顯示行數,與width或者layout_width結合使用,超出部分自動換行,超出行數將不顯示。
android:minLines設置文本的最小行數,與lines類似。
android:lineSpacingExtra設置行間距。
android:lineSpacingMultiplier設置行間距的倍數。如」1.2」
android:numeric如果被設置,該TextView有一個數字輸入法。此處無用,設置後唯一效果是TextView有點擊效果,此屬性在EdtiView將詳細說明。
android:password以小點」.」顯示文本
android:phoneNumber設置為電話號碼的輸入方式。
android:privateImeOptions設置輸入法選項,此處無用,在EditText將進一步討論。
android:scrollHorizontally設置文本超出TextView的寬度的情況下,是否出現橫拉條。
android:selectAllOnFocus如果文本是可選擇的,讓他獲取焦點而不是將游標移動為文本的開始位置或者末尾位置。 TextView中設置後無效果。
android:shadowColor指定文本陰影的顏色,需要與shadowRadius一起使用。
android:shadowDx設置陰影橫向坐標開始位置。
android:shadowDy設置陰影縱向坐標開始位置。
android:shadowRadius設置陰影的半徑。設置為0.1就變成字體的顏色了,一般設置為3.0的效果比較好。
android:singleLine設置單行顯示。如果和layout_width一起使用,當文本不能全部顯示時,後面用「…」來表示。如android:text="test_ singleLine "
android:singleLine="true" android:layout_width="20dp"將只顯示「t…」。如果不設置singleLine或者設置為false,文本將自動換行
android:text設置顯示文本.
android:textAppearance設置文字外。如 「?android:attr/textAppearanceLargeInverse」這里引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,否則使用默認的外觀。可textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse
android:textColor設置文本顏色
android:textColorHighlight被選中文字的底色,默認為藍色
android:textColorHint設置提示信息文字的顏色,默認為灰色。與hint一起使用。
android:textColorLink文字鏈接的顏色.
android:textScaleX設置文字之間間隔,默認為1.0f。
android:textSize設置文字大小,推薦度量單位」sp」,如」15sp」
android:textStyle設置字形[bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2] 可以設置一個或多個,用「|」隔開
android:typeface設置文本字體,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體) 3]
android:height設置文本區域的高度,支持度量單位:px(像素)/dp/sp/in/mm(毫米)
android:maxHeight設置文本區域的最大高度
android:minHeight設置文本區域的最小高度
android:width設置文本區域的寬度,支持度量單位:px(像素)/dp/sp/in/mm(毫米),與layout_width 的區別看這里。
android:maxWidth設置文本區域的最大寬度
android:minWidth設置文本區域的最小寬度
Android activity屬性匯總
android:allowTaskReparenting
是否允許activity更換從屬的任務,比如從簡訊息任務 切換到瀏覽器任務。
android:alwaysRetainTaskState
是否保留狀態不變, 比如切換回home, 再從新打開, activity處於最後的狀態
android:clearTaskOnLanunch
比如 P 是 activity, Q 是被P 觸發的 activity, 然後返回Home, 從新啟動 P, 是否顯示 Q
android:configChanges
當配置list發生修改時,是否調用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
android:enabled
activity 是否可以被實例化,
android:excludeFromRecents
是否可被顯示在最近打開的activity列表裡
android:exported
是否允許activity被其它程序調用
android:finishOnTaskLaunch
是否關閉已打開的activity當用戶重新啟動這個任務的時候
android.icon
android:label
android:launchMode
activity啟動方式, "standard" "singleTop" "singleTask" "singleInstance"
其中前兩個為一組, 後兩個為一組
android:multiprocess
允許多進程
android:name
activity的類名, 必須指定
androidnHistory
是否需要移除這個activity當用戶切換到其他屏幕時。 這個屬性是 API level 3 中引入的
android:permission
android:process
一 個activity運行時所在的進程名,所有程序組件運行在應用程序默認的進程中,這個進程名跟應用程序的包名一致。中的元素process屬性能夠為所有組件設定一個新的默認值。但是任何組件都可以覆蓋這個默認值,允許你將你的程序放在多進程中運行。 如果這個屬性被分配的名字以:開頭,當這個activity運行時, 一個新的專屬於這個程序的進程將會被創建。 如果這個進程名以小寫字母開頭,這個activity將會運行在全局的進程中,被它的許可所提供。
android:screenOrientation
activity顯示的模式, "unspecified" 默認值 "landscape" 風景畫模式,寬度比高度大一些 "portrait" 肖像模式, 高度比寬度大。 "user" 用戶的設置 "behind" "sensor" "nosensor"
android:stateNotNeeded
是否 activity被銷毀和成功重啟並不保存狀態
android:taskAffinity
activity的親屬關系, 默認情況同一個應用程序下的activity有相同的關系
android:theme
activity的樣式主題, 如果沒有設置,則activity的主題樣式從屬於應用程序, 參見元素的theme屬性
android:windowSoftInputMode
activity主窗口與軟鍵盤的交互模式, 自從API level 3 被引入
活動的主窗口如何與包含屏幕上的軟鍵盤窗口交互。這個屬性的設置將會影響兩件事情:
1> 軟鍵盤的狀態——是否它是隱藏或顯示——當活動(Activity)成為用戶關注的焦點。
2> 活動的主窗口調整——是否減少活動主窗口大小以便騰出空間放軟鍵盤或是否當活動窗口的部分被軟鍵盤覆蓋時它的內容的當前焦點是可見的。
它的設置必須是下面列表中的一個值,或一個」state…」值加一個」adjust…」值的組合。在任一組設置多個值——多個」state…」values,例如&mdash有未定義的結果。各個值之間用|分開。例如: <activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >
在這設置的值(除"stateUnspecified"和"adjustUnspecified"以外)將覆蓋在主題中設置的值
值 描述
"stateUnspecified" 軟鍵盤的狀態(是否它是隱藏或可見)沒有被指定。系統將選擇一個合適的狀態或依賴於主題的設置。這個是為了軟體盤行為默認的設置。
"stateUnchanged" 軟鍵盤被保持無論它上次是什麼狀態,是否可見或隱藏,當主窗口出現在前面時。
"stateHidden" 當用戶選擇該Activity時,軟鍵盤被隱藏——也就是,當用戶確定導航到該Activity時,而不是返回到它由於離開另一個Activity。
"stateAlwaysHidden" 軟鍵盤總是被隱藏的,當該Activity主窗口獲取焦點時。
"stateVisible" 軟鍵盤是可見的,當那個是正常合適的時(當用戶導航到Activity主窗口時)。
"stateAlwaysVisible" 當用戶選擇這個Activity時,軟鍵盤是可見的——也就是,也就是,當用戶確定導航到該Activity時,而不是返回到它由於離開另一個Activity。
"adjustUnspecified" 它不被指定是否該Activity主窗口調整大小以便留出軟鍵盤的空間,或是否窗口上的內容得到屏幕上當前的焦點是可見的。系統將自動選擇這些模式中一種主要依賴於是否窗口的內容有任何布局視圖能夠滾動他們的內容。如果有這樣的一個視圖,這個窗口將調整大小,這樣的假設可以使滾動窗口的內容在一個較小的區域中可見的。這個是主窗口默認的行為設置。
"adjustResize" 該Activity主窗口總是被調整屏幕的大小以便留出軟鍵盤的空間。
"adjustPan" 該Activity主窗口並不調整屏幕的大小以便留出軟鍵盤的空間。相反,當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為用戶可能關閉軟鍵盤以便獲得與被覆蓋內容的交互操作。
Android EditText 屬性匯總
android:layout_gravity="center_vertical"
設置控制項顯示的位置:默認top,這里居中顯示,還有bottom
android:hint="請輸入數字!"
設置顯示在空間上的提示信息
android:numeric="integer"
設置只能輸入整數,如果是小數則是:decimal
android:singleLine="true"
設置單行輸入,一旦設置為true,則文字不會自動換行。
android:password="true"
設置只能輸入密碼
android:textColor = "#ff8c00"
字體顏色
android:textStyle="bold"
字體,bold, italic, bolditalic
android:textSize="20dip"
大小
android:capitalize = "characters"
以大寫字母寫
android:textAlign="center"
EditText沒有這個屬性,但TextView有
android:textColorHighlight="#cccccc"
被選中文字的底色,默認為藍色
android:textColorHint="#ffff00"
設置提示信息文字的顏色,默認為灰色
android:textScaleX="1.5"
控制字與字之間的間距
android:typeface="monospace"
字型,normal, sans, serif, monospace
android:background="@null"
空間背景,這里沒有,指透明
android:layout_weight="1"
權重,控制控制項之間的地位,在控制控制項顯示的大小時蠻有用的。
android:textAppearance="?android:attr/textAppearanceLargeInverse"
文字外觀,這里引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,否則使用默認的外觀。不知道這樣理解對不對?
通過EditText的layout xml文件中的相關屬性來實現:
1. 密碼框屬性 android:password="true" 這條可以讓EditText顯示的內容自動為星號,輸入時內容會在1秒內變成*字樣。
2. 純數字 android:numeric="true" 這條可以讓輸入法自動變為數字輸入鍵盤,同時僅允許0-9的數字輸入
3. 僅允許 android:capitalize="cwj1987" 這樣僅允許接受輸入cwj1987,一般用於密碼驗證
下面是一些擴展的風格屬性
android:editable="false" 設置EditText不可編輯
android:singleLine="true" 強制輸入的內容在單行
android:ellipsize="end" 自動隱藏尾部溢出數據,一般用於文字內容過長一行無法全部顯示時
---------------------
5. 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());
}
}
6. 2021-09-15 TextView屬性大全
TextView 是用於顯示字元串的組件,對於用戶來說就是屏幕中一塊用於顯示文本的區域。
TextView 類的層次關系如下:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
直接子類:
Button,
CheckedTextView,
Chronometer,
DigitalClock,
EditText
間接子類:
AutoCompleteTextView,
CheckBox,
CompoundButton,
ExtractEditText,
MultiAutoCompleteTextView,
RadioButton,
ToggleButton
TextView 類方法
前面是方法,中間解釋,後面為方法的返回值
getDefaultMovementmethod //獲取默認的箭頭按鍵移動方式 //Movementmethod
getText //獲得TextView 對象的文本 //CharSquence
length //獲得TextView 中的文本長度 //Int
getEditableText //取得文本的可編輯對象,通過 這個對象可對TextView 的文本進行操作,如在游標之後插入字元 //Void
getCompoundPaddingBottom //返回底部填充物 //Int
setCompoundDrawables //設置圖像顯示的位置,在 設置該Drawable 資源之前需要調用setBounds(Rect) //Void
//設置Drawable 圖像的顯示位置,但其邊界不變 //Void
setPadding //根據位置設置填充物 //Void
getAutoLinkMask //返回自動連接的掩碼 //Void
setTextColor //設置文本顯示的顏色 //Void
setHighlightColor //設置文本選中時顯示的顏色 //Void
setShadowLayer //設置文本顯示的陰影顏色 //Void
setHintTextColor //設置提示文字的顏色 //Void
setLinkTextColor //設置鏈接文字的顏色 //Void
setGravity //設置當TextView 超出了文本本身時橫向以及垂直對齊 //Void
getFreezesText //設置該視圖是否包含整個文本,如果包含則返回真值,否則返回假值 //Boolean
屬性
android:autoLink //設置是否當文本為URL 鏈接/email/電話號碼/map 時,文本顯示為可點擊的鏈接。可選值(none/web/email/phone/map/all)
android:autoText //如果設置,將自動執行輸入值的拼寫糾正。此處無效果,在顯示輸入法並輸入的時候起作用。
android:bufferType //指定getText()方式取得的文本類別。選項editable 類似於StringBuilder 可追加字元,也就是說getText 後可調用append 方法設置文本內容。
android:capitalize //設置英文字母大寫類型。此處無效果,需要彈出輸入法才能看得到,參見EditView 此屬性說明。
android:cursorVisible //設定游標為顯示/隱藏,默認顯示。
android:digits //設置允許輸入哪些字元。如「1234567890.+-*/%\n()」
android:drawableBottom //在text 的下方輸出一個drawable,如圖片。如果指定一個顏色的話會把text 的背景設為該顏色,並且同時和background 使用時覆蓋後者。
android:drawableLeft //在text 的左邊輸出一個drawable,如圖片。
android:drawablePadding //設置text 與drawable(圖片)的間隔,與drawableLeft、drawableRight、drawableTop、drawableBottom 一起使用,可設置為負數,單獨使用沒有效果。
android:drawableRight //在text 的右邊輸出一個drawable,如圖片。
android:drawableTop //在text 的正上方輸出一個drawable,如圖片。
android:ellipsize //設置當文字過長時,該控制項該如何顯示。有如下值設置:」start」—–省略號顯示在開頭;」end」——省略號顯示在結尾;」middle」—-省略號顯示在中間;」marquee」 ——以跑馬燈的方式顯示(動畫橫向移動)
android:freezesText //設置保存文本的內容以及游標的位置。
android:gravity //設置文本位置,如設置成「center」,文本將居中顯示。
android:hint //Text 為空時顯示的文字提示信息,可通過textColorHint 設置提示信息的顏色。比較奇怪的是TextView 本來就相當於Label,怎麼會不設置Text?!
android:includeFontPadding //設置文本是否包含頂部和底部額外空白,默認為true。
android:inputMethod //為文本指定輸入法,需要完全限定名(完整的包名)。
android:linksClickable //設置鏈接是否點擊連接
android:marqueeRepeatLimit //在ellipsize 指定marquee 的情況下,設置重復滾動的次數,當設置為marquee_forever 時表示無限次。
android:ems //設置TextView 的寬度為N 個字元的寬度。
android:maxEms //設置TextView 的寬度為最長為N 個字元的寬度。
android:minEms //設置TextView 的寬度為最短為N 個字元的寬度。
android:maxLength //限制顯示的文本長度,超出部分不顯示。
android:lines //設置文本的行數,設置兩行就顯示兩行,即使第二行沒有數據。
android:maxLines //設置文本的最大顯示行數,與width 或者layout_width 結合使用,超出部分自動換行,超出行數將不顯示
android:minLines //設置文本的最小行數,與lines 類似。
android:lineSpacingExtra //設置行間距。
android:lineSpacingMultiplier //設置行間距的倍數。
android:password //以小點」.」顯示文本
android:phoneNumber //設置為電話號碼的輸入方式。
android:scrollHorizontally //設置文本超出TextView 的寬度的情況下,是否出現橫拉條。
android:shadowColor //指定文本陰影的顏色,需要與 shadowRadius 一起使用。
android:shadowRadius //設置陰影的半徑。
android:shadowDx //設置陰影橫向坐標開始位置。
android:shadowDy //設置陰影縱向坐標開始位置。
android:singleLine //設置單行顯示。
android:text //設置顯示文本.
android:textAppearance //設置文字外觀。如「?android:attr/textAppearanceLargeInverse」這里引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,否則使用默認的外觀。可設置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse
android:textColor //設置文本顏色
android:textColorHighlight //被選中文字的底色,默認為藍色
android:textColorHint //設置提示信息文字的顏色,默認為灰色。與hint 一起使用。
android:textColorLink //文字鏈接的顏色.
android:textScaleX //設置文字之間間隔,默認為1.0f。
android:textSize //設置文字大小,推薦度量單位」sp」,如」15sp」
android:textStyle //設置字形[bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2] 可以設置一個或多個,用「|」隔開android:typeface //設置文本字體,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體) 3]
android:height //設置文本區域的高度,支持度量單位:px(像素)/dp/sp/in/mm(毫米)
android:maxHeight //設置文本區域的最大高度
android:minHeight //設置文本區域的最小高度
android:width //設置文本區域的寬度,支持度量單位:px(像素)/dp/sp/in/mm(毫米)。
android:maxWidth //設置文本區域的最大寬度
android:minWidth //設置文本區域的最小寬度
原文鏈接: https://blog.csdn.net/Adomner/article/details/52263987
7. 如何設定android studio 版本
如何設定android studio 版本
TextView的屬性:
Android:autoLink設定是否當文字為URL連結/email/電話號碼/map時,文字顯示為可點選的連結。可選值(none/web /email/phone/map/all)
android:autoText如果設定,將自動執行輸入值的拼寫糾正。此處無效果,在顯示輸入法並輸入的時候起作用。
android:bufferType指定getText()方式取得的文字類別。選項editable 類似於StringBuilder可追加字元,也就是說getText後可呼叫append方法設定文字內容。spannable 則可在給定的字元區域使用樣式,參見這里1、這里2。
android:capitalize設定英文字母大寫型別。此處無效果,需要彈出輸入法才能看得到,參見EditView此屬性說明。
android:cursorVisible設定游標為顯示/隱藏,預設顯示。
android:digits設定允許輸入哪些字元。如「1234567890.+-*/% ()」
android:drawableBottom在text的下方輸出一個drawable,如圖片。如果指定一個顏色的話會把text的背景設為該顏色,並且同時和background使用時覆蓋後者。
android:drawableLeft在text的左邊輸出一個drawable,如圖片。
android:drawablePadding設定text與drawable(圖片)的間隔,與drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可設定為負數,單獨使用沒有效果。
android:drawableRight在text的右邊輸出一個drawable。
android:drawableTop在text的正上方輸出一個drawable。
android:editable設定是否可編輯。
android:editorExtras設定文字的額外的輸入資料。
android:ellipsize設定當文字過長時,該控制元件該如何顯示。有如下值設定:」start」—?省略號顯示在開頭;」end」 ——省略號顯示在結尾;」middle」—-省略號顯示在中間;」marquee」 ——以跑馬燈的方式顯示(動畫橫向移動)
android:freezesText設定儲存文字的內容以及游標的位置。
android:gravity設定文字位置,如設定成「center」,文字將居中顯示。
android:hintText為空時顯示的文字提示資訊,可通過textColorHint設定提示資訊的顏色。此屬性在 EditView中使用,但是這里也可以用。
android:imeOptions附加功能,設定右下角IME動作與編輯框相關的動作,如actionDone右下角將顯示一個「完成」,而不設定預設是一個回車符號。這個在EditView中再詳細說明,此處無用。
android:imeActionId設定IME動作ID。
android:imeActionLabel設定IME動作標簽。
android:includeFontPadding設定文字是否包含頂部和底部額外空白,預設為true。
android:inputMethod為文字指定輸入法,需要完全限定名(完整的包名)。例如:.google.android.inputmethod.pinyin,但是這里報錯找不到。
android:inputType設定文字的型別,用於幫助輸入法顯示合適的鍵盤型別。在EditView中再詳細說明,這里無效果。
android:linksClickable設定連結是否點選連線,即使設定了autoLink。
android:marqueeRepeatLimit在ellipsize指定marquee的情況下,設定重復滾動的次數,當設定為 marquee_forever時表示無限次。
android:ems設定TextView的寬度為N個字元的寬度。這里測試為一個漢字字元寬度
android:maxEms設定TextView的寬度為最長為N個字元的寬度。與ems同時使用時覆蓋ems選項。
android:minEms設定TextView的寬度為最短為N個字元的寬度。與ems同時使用時覆蓋ems選項。
android:maxLength限制顯示的文字長度,超出部分不顯示。
android:lines設定文字的行數,設定兩行就顯示兩行,即使第二行沒有資料。
android:maxLines設定文字的最大顯示行數,與width或者layout_width結合使用,超出部分自動換行,超出行數將不顯示。
android:minLines設定文字的最小行數,與lines類似。
android:lineSpacingExtra設定行間距。
android:lineSpacingMultiplier設定行間距的倍數。如」1.2」
android:numeric如果被設定,該TextView有一個數字輸入法。此處無用,設定後唯一效果是TextView有點選效果,此屬性在EdtiView將詳細說明。
android:password以小點」.」顯示文字
android:phoneNumber設定為電話號碼的輸入方式。
android:privateImeOptions設定輸入法選項,此處無用,在EditText將進一步討論。
android:scrollHorizontally設定文字超出TextView的寬度的情況下,是否出現橫拉條。
android:selectAllOnFocus如果文字是可選擇的,讓他獲取焦點而不是將游標移動為文字的開始位置或者末尾位置。 TextView中設定後無效果。
android:shadowColor指定文字陰影的顏色,需要與shadowRadius一起使用。
android:shadowDx設定陰影橫向座標開始位置。
android:shadowDy設定陰影縱向座標開始位置。
android:shadowRadius設定陰影的半徑。設定為0.1就變成字型的顏色了,一般設定為3.0的效果比較好。
android:singleLine設定單行顯示。如果和layout_width一起使用,當文字不能全部顯示時,後面用「…」來表示。如android:text="test_ singleLine "
android:singleLine="true" android:layout_width="20dp"將只顯示「t…」。如果不設定singleLine或者設定為false,文字將自動換行
android:text設定顯示文字.
android:textAppearance設定文字外觀。如 「?android:attr/textAppearanceLargeInverse」這里引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,否則使用預設的外觀。可設定的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse
android:textColor設定文字顏色
android:textColorHighlight被選中文字的底色,預設為藍色
android:textColorHint設定提示資訊文字的顏色,預設為灰色。與hint一起使用。
android:textColorLink文字連結的顏色.
android:textScaleX設定文字之間間隔,預設為1.0f。
android:textSize設定文字大小,推薦度量單位」sp」,如」15sp」
android:textStyle設定字形[bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2] 可以設定一個或多個,用「|」隔開
android:typeface設定文字字型,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字型) 3]
android:height設定文字區域的高度,支援度量單位:px(畫素)/dp/sp/in/mm(毫米)
android:maxHeight設定文字區域的最大高度
android:minHeight設定文字區域的最小高度
android:width設定文字區域的寬度,支援度量單位:px(畫素)/dp/sp/in/mm(毫米),與layout_width 的區別看這里。
android:maxWidth設定文字區域的最大寬度
android:minWidth設定文字區域的最小寬度
android studio 編譯無gradle 如何設定最小版本
安裝Android Studio的准備工作 1.下載好JDK 去官網上找一個下載下來 2.安裝JDK.並配置環境變數.安裝過程可以一直下一步,無腦操作 3.下載Android Studio的安裝包 去官網上找一個,下載下來 (jdk的環境變數一定要配置) 准備工作完成之後,就可以開始我們的安裝了 1.安裝Android studio也是無腦操作,一直點下一步。直到安裝結束 2.安裝好之後,我們要新建我們的專案。重點從這里開始 點選 New Project會出現.我們設定好名稱,也可以無腦操作,一直點選next,直至結束,不過這個過程需要我們耐心的等待。(時間有點漫長)。 然後我們就會進入我們的開發介面。點選圖片中紅圈的圖示(SDK manager)會出現下圖 這個步驟是安裝Android的sdk,推薦,Android1.6~Android4.4.2全部安裝。(這個耗費時間挺長的,請在網速良好且大量閑暇時光下安裝,安裝過程中可以看部電影) 安裝完之後,就開始配置我們的avd(Android Virtual Device),也就是Android的虛擬環境。點選,圖片中紅圈的圖示 點選New(Test是我配置好的) 隨便設定AVD name,建議如圖設定 設定完成之後,就可以點選下圖的三角號編譯我們的程式了。
如何在Android Studio里設定Build Tool版本
一、修改Android Studio(以下簡稱AS)的記憶體配置 因為在匯入原始碼時需要消耗大量記憶體,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文件中使用的是748m, 可自行修改。 二、配置AS的JDK、SDK 在IDE中新增一個沒有classpath的JDK, 這樣可以確保使用原始碼里的庫檔案 並將其作為要使用的SDK的Java SDK。如下圖 三、生成匯入AS所需配置... 一、修改Android Studio(以下簡稱AS)的記憶體配置
因為在匯入原始碼時需要消耗大量記憶體,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文件中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中新增一個沒有classpath的JDK, 這樣可以確保使用原始碼里的庫檔案
並將其作為要使用的SDK的Java SDK。如下圖
三、生成匯入AS所需配置檔案(*.ipr)
①編譯原始碼(為了確保生成了.java檔案,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/
在5.0.1的原始碼中會生成res.java的資料夾,導致idegen.jar執行時拋FileNotFoundException,這是idegen的程式碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh
等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms
這時會在原始碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ IDEA社群版開發的)的配置檔案
④在AS中開啟原始碼根目錄下新生成的android.ipr 全部