Android 相關屬性

奮鬥年輕人發表於2016-11-09

TextView:

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系統預設支援三種字型,分別為:sans, serif, monospace",除此之外還可以使用其他字型檔案(*.ttf)


EditText:

通過EditText的layout xml檔案中的相關屬性來實現:

密碼框屬性 android:password="true"
這條可以讓EditText顯示的內容自動為星號,輸入時內容會在1秒內變成*字樣。

純數字 android:numeric="true"

這條可以讓輸入法自動變為數字輸入鍵盤,同時僅允許0-9的數字輸入

僅允許 android:capitalize="cwj1987"

這樣僅允許接受輸入cwj1987,一般用於密碼驗證

android:digits="0123456789Xx"

這樣僅允許輸入指定的字元

android:editable="false"

設定EditText不可編輯

android:singleLine="true"

強制輸入的內容在單行

android:ellipsize="end"

自動隱藏尾部溢位資料,一般用於文字內容過長一行無法全部顯示時

android:autoLink

設定是否當文字為URL連結/email/電話號碼/map時,文字顯示為可點選的連結。可選值(none/web/email/phone/map/all)

android:autoText

如果設定,將自動執行輸入值的拼寫糾正。此處無效果,在顯示輸入法並輸入的時候起作用。

android:bufferType

指定getText()方式取得的文字類別。選項editable 類似於StringBuilder可追加字元,也就是說getText後可呼叫append方法設定文字內容。android:spannable

則可在給定的字元區域使用樣式。

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

android:height

設定文字區域的高度,支援度量單位:px(畫素)/dp/sp/in/mm(毫米)

android:maxHeight

設定文字區域的最大高度

android:minHeight

設定文字區域的最小高度

android:width

設定文字區域的寬度,支援度量單位:px(畫素)/dp/sp/in/mm(毫米),與layout_width的區別看這裡。

android:maxWidth

設定文字區域的最大寬度

android:minWidth

設定文字區域的最小寬度


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有未定義的結果。各個值之間用|分開。例如: <activityandroid: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主視窗並不調整螢幕的大小以便留出軟鍵盤的空間。相反,當前視窗的內容將自動移動以便當前焦點從不被鍵盤覆蓋和使用者能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為使用者可能關閉軟鍵盤以便獲得與被覆蓋內容的互動操作。


activity設定視窗模式
1。在你的styles.xml檔案中可以新建一如下的style:

<style name="Theme.FloatActivity" parent="android:style/Theme.Dialog">
<!-- float_box為我們定義的視窗背景 ,這個不是必須的-->
<item name="android:windowBackground">@drawable/float_box</item>
</style>

如果視窗要新增視窗背景,可以在drawable中新建一個叫float_box.xml的檔案,內容可以如下(自定義):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<stroke android:width="3dp" color="#000000" />
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
</shape>

2.在AndroidManifest.xml中在你需要顯示為視窗的activity中新增如果屬性:android:theme="@style/Theme.FloatActivity" 即可

如果說您覺得新建style.xml及float_box.xml檔案的方式麻煩或者只想Test一下,那麼可以直接新增您對應需要展示為Dialog style的Activity的android:theme屬性值為android:theme="@android:style/Theme.Dialog"。


activity屬性設定大全
android:allowTaskReparenting=["true" | "false"]
是否允許activity更換從屬的任務,比如從簡訊息任務 切換到瀏覽器任務。

android:alwaysRetainTaskState=["true" | "false"]
是否保留狀態不變, 比如切換回home, 再從新開啟, activity處於最後的狀態

android:clearTaskOnLaunch=["true"" | "false"]
比如 P 是 activity, Q 是被P 觸發的 activity, 然後返回Home, 從新啟動 P, 是否顯示 Q

android:configChanges=[one or more of: "mcc" "mnc" "locale" "touchscreen" "keyboard" "keyboardHidden" "navigation" "orientation" "fontScale"]
當配置list發生修改時, 是否呼叫 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
android:enabled=["true" | "false"]
activity 是否可以被例項化,

android:excludeFromRecents=["true" | "false"]
是否可被顯示在最近開啟的activity列表裡

android:exported=["true" | "false"]
是否允許activity被其它程式呼叫

android:finishOnTaskLaunch=["true" | "false"]
是否關閉已開啟的activity當使用者重新啟動這個任務的時候

android:icon="drawable resource"
android:label="string resource"

android:launchMode=["multiple" | "singleTop" |"singleTask" | "singleInstance"]
activity啟動方式, "standard" "singleTop" "singleTask" "singleInstance" 其中前兩個為一組, 後兩個為一組

android:multiprocess=["true" | "false"]
android:name="string"
android:noHistory=["true" | "false"]
是否需要移除這個activity當使用者切換到其他螢幕時。 這個屬性是 API level 3 中引入的
android:permission="string"

android:process="string"
一個activity執行時所在的程式名,所有程式元件執行在應用程式預設的程式中,這個程式名跟應用程式的包名一致。
<application>中的元素process屬效能夠為所有元件設定一個新的預設值。但是任何元件都可以覆蓋這個預設值,允許你
將你的程式放在多程式中執行。 如果這個屬性被分配的名字以:開頭,當這個activity執行時,一個新的專屬於這個程式的
程式將會被建立。如果這個程式名以小寫字母開頭,這個activity將會執行在全域性的程式中,被它的許可所提供。

android:screenOrientation=["unspecified" | "user" | "behind" |"landscape" | "portrait" | "sensor" | "nonsensor"]
activity顯示的模式, "unspecified" 預設值 "landscape" 風景畫模式,寬度比高度大一些 "portrait" 肖像模式, 高度比
寬度大。 "user" 使用者的設定 "behind" "sensor" "nosensor"

android:stateNotNeeded=["true" | "false"]
是否 activity被銷燬和成功重啟並不儲存狀態

android:taskAffinity="string"
activity的親屬關係, 預設情況同一個應用程式下的activity有相同的關係

android:theme="resource or theme"
activity的樣式主題, 如果沒有設定,則activity的主題樣式從屬於應用程式, 參見<application>元素的theme屬性

android:windowSoftInputMode=[one or more of: "stateUnspecified""stateUnchanged" "stateHidden" "stateAlwaysHidden"
"stateVisible""stateAlwaysVisible""adjustUnspecified""adjustResize" "adjustPan"] > 

相關文章