Android 常用知識(shí)點(diǎn)總結(jié)之UI組件(持續(xù)更新)

以下知識(shí)點(diǎn)為常用且不熟知的一些知識(shí)點(diǎn)

1.TextView

1.1 shapeDrawable知識(shí)點(diǎn)
<solid android:color = "xxx"> 這個(gè)是設(shè)置背景顏色的

<stroke android:width = "xdp" android:color="xxx"> 這個(gè)是設(shè)置邊框的粗細(xì),以及邊框顏色的

<padding androidLbottom = "xdp"...> 這個(gè)是設(shè)置邊距的

<corners android:topLeftRadius="10px"...> 這個(gè)是設(shè)置圓角的

<gradient> 這個(gè)是設(shè)置漸變色的,可選屬性有: startColor:起始顏色 endColor:結(jié)束顏色 
centerColor:中間顏色 angle:方向角度,等于0時(shí),從左到右,然后逆時(shí)針方向轉(zhuǎn),當(dāng)angle = 90度時(shí)從下往上 type:設(shè)置漸變的類型
1.2 drawableXxx;可以設(shè)置四個(gè)方向的圖片

xml中修改

drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右) 

另外,你也可以使用drawablePadding來設(shè)置圖片與文字間的間距!

Java中代碼中進(jìn)行修改

第一步:Drawable[] drawable = textview.getCompoundDrawables( );
獲得四個(gè)不同方向上的圖片資源,數(shù)組元素依次是:左上右下的圖片


第二步:drawable[1].setBounds(100, 0, 200, 200);
接著獲得資源后,可以調(diào)用setBounds設(shè)置左上右下坐標(biāo)點(diǎn),比如這里設(shè)置了代表的是:
 長是:從離文字最左邊開始100dp處到200dp處 寬是:從文字上方0dp處往上延伸200dp!


第三步:textview..setCompoundDrawables(drawable[0], drawable[1], drawable[2], drawable[3]);
為TextView重新設(shè)置drawable數(shù)組!沒有圖片可以用null代替哦! 
PS:另外,從上面看出我們也可以直接在Java代碼中調(diào)用setCompoundDrawables為 TextView設(shè)置圖片!
1.3autoLink相關(guān)知識(shí)點(diǎn)

all就是全部都包含,自動(dòng)識(shí)別協(xié)議頭~ 在Java代碼中可以調(diào)用setAutoLinkMask(Linkify.ALL); 這個(gè)時(shí)候可以不寫協(xié)議頭,autolink會(huì)自動(dòng)識(shí)別,但是還要為這個(gè)TextView設(shè)置: setMovementMethod(LinkMovementMethod.getInstance()); 不然點(diǎn)擊了是沒效果的!

1.4TextView內(nèi)容轉(zhuǎn)HTML代碼
        //將字符串轉(zhuǎn)換為**CharSequence**接口
        t1.setText(Html.fromHtml(s1));
        t1.setMovementMethod(LinkMovementMethod.getInstance());
1.5跑馬燈效果
         android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"

2.EditText

2.1常用屬性
  • android:hint //設(shè)置hint提示文本

  • android:textColorHint //設(shè)置hint提示文字顏色

  • android:textStyle //設(shè)置文本字體樣式,bold(加粗),italic(傾斜),normal(默認(rèn)是正常字體).

  • android:singleLine //設(shè)置是否單行輸入 true(單行輸入),false(會(huì)自動(dòng)換行).注意:該屬性在使用時(shí)提示已過時(shí),建議使用android:maxLines="1"屬性替代.

  • android:textAlignment //設(shè)置EditText中文本顯示的位置,center(居中),inherit(默認(rèn),居左邊顯示),viewStart(居左顯示),viewEnd(居右顯示),textStart(居左顯示),textEnd(居右顯示).這里需要注意的是最低支持的API版本是17,前兩個(gè)可以在API14中使用,而后面使用就會(huì)報(bào)紅線...

  • android:textColorHighlight //設(shè)置被選中字體的顏色.默認(rèn)為 Theme 主題中的 “colorAccent”的顏色.

  • textCursorDrawable //設(shè)置被光標(biāo)的顏色.默認(rèn)為 Theme 主題中的 “colorAccent”的顏色.

  • android:textScaleX //設(shè)置文本的水平縮放系數(shù).

  • android:typeface //設(shè)置hint提示文本的字體.normal(默認(rèn)),monospace,sans,serif.這里就不解釋了,大家試一下就能看出效果.

  • android:background //設(shè)置EditText背景."@null"設(shè)置背景為透明.當(dāng)我們設(shè)置背景后,EditText的那條線就會(huì)消失.

  • android:textAppearance //設(shè)置文本的顏色,字體,大小和樣式.

  • android:digits //設(shè)置只接收指定的文本內(nèi)容.

  • android:editable //設(shè)置EditText是否可以編輯.當(dāng)你設(shè)置為true,會(huì)提示你該EditText已經(jīng)是可編輯的.設(shè)置為false時(shí)會(huì)提示使用inputType替代.

  • android:inputType //設(shè)置文本的類型,用于幫助輸入法顯示合適的鍵盤類型.

  • android:maxLength //設(shè)置EditText最多接受的文本的個(gè)數(shù).

  • android:lines //設(shè)置EditText顯示的行數(shù),設(shè)置兩行就顯示兩行,即使第二行沒有數(shù)據(jù).

  • android:lineSpacingExtra //設(shè)置行間距.

  • android:lineSpacingMultiplier //設(shè)置行間距的倍數(shù). 如設(shè)置成1.5倍.

  • android:imeOptions //設(shè)置右下角IME動(dòng)作與編輯框相關(guān)的動(dòng)作,如actionDone右下角將顯示一個(gè)“完成”,而不設(shè)置默認(rèn)是一個(gè)回車符號(hào).下面會(huì)詳細(xì)說明.

2.inputType用法

android:inputType=none:普通字符。

android:inputType=text:普通字符。

android:inputType=textCapCharacters:字母大寫。

android:inputType=textCapWords:首字母大寫。

android:inputType=textCapSentences:僅第一個(gè)字母大寫。

android:inputType=textAutoCorrect:自動(dòng)完成。

android:inputType=textAutoComplete:自動(dòng)完成。

android:inputType=textMultiLine:多行輸入。

android:inputType=textImeMultiLine:輸入法多行(如果支持)。

android:inputType=textNoSuggestions:不提示。

android:inputType=textUri:網(wǎng)址。

android:inputType=textEmailAddress:電子郵件地址。

android:inputType=textEmailSubject:郵件主題。

android:inputType=textShortMessage:短訊。

android:inputType=textLongMessage:長信息。

android:inputType=textPersonName:人名。

android:inputType=textPostalAddress:地址。

android:inputType=textPassword:密碼。

android:inputType=textVisiblePassword:可見密碼。

android:inputType=textWebEditText:作為網(wǎng)頁表單的文本。

android:inputType=textFilter:文本篩選過濾。

android:inputType=textPhonetic:拼音輸入。

android:inputType=number:數(shù)字。

android:inputType=numberSigned:帶符號(hào)數(shù)字格式。

android:inputType=numberDecimal:帶小數(shù)點(diǎn)的浮點(diǎn)格式。

android:inputType=phone:撥號(hào)鍵盤。

android:inputType=datetime:時(shí)間日期。

android:inputType=date:日期鍵盤。

android:inputType=time:時(shí)間鍵盤。

3.ImageView

3.1 JAVA中的用法
前景(對(duì)應(yīng)XML的src屬性):setImageDrawable( );
背景(對(duì)應(yīng)XML的background屬性):setBackgroundDrawable( );
3.2 adjustViewBounds設(shè)置縮放是否保存原圖長寬比
單獨(dú)設(shè)置不起作用,需要配合maxWidth和maxHeight屬性一起使用!
android:adjustViewBounds="true"
android:maxHeight:設(shè)置ImageView的最大高度
android:maxWidth:設(shè)置ImageView的最大寬度
3.3 scaleType設(shè)置縮放類型
fitXY:對(duì)圖像的橫向與縱向進(jìn)行獨(dú)立縮放,使得該圖片完全適應(yīng)ImageView,
但是圖片的橫縱比可能會(huì)發(fā)生改變

fitStart:保持縱橫比縮放圖片,知道較長的邊與Image的編程相等,
縮放完成后將圖片放在ImageView的左上角

fitCenter:同上,縮放后放于中間;

fitEnd:同上,縮放后放于右下角;

center:保持原圖的大小,顯示在ImageView的中心。
當(dāng)原圖的size大于ImageView的size,超過部分裁剪處理。

centerCrop:保持橫縱比縮放圖片,知道完全覆蓋ImageView,可能會(huì)出現(xiàn)圖片的顯示不完全

centerInside:保持橫縱比縮放圖片,直到ImageView能夠完全地顯示圖片

matrix['me?tr?ks]:默認(rèn)值,不改變原圖的大小,從ImageView的左上角開始繪制原圖, 
原圖超過ImageView的部分作裁剪處理

4.Button

1)ToggleButton(開關(guān)按鈕)

可供我們設(shè)置的屬性:

android:disabledAlpha:設(shè)置按鈕在禁用時(shí)的透明度
android:textOff:按鈕沒有被選中時(shí)顯示的文字
android:textOn:按鈕被選中時(shí)顯示的文字 另外,除了這個(gè)我們還可以自己寫個(gè)selector,然后設(shè)置下Background屬性即可~
2) Switch(開關(guān))

可供我們設(shè)置的屬性:

android:showText:設(shè)置on/off的時(shí)候是否顯示文字,boolean
android:splitTrack:是否設(shè)置一個(gè)間隙,讓滑塊與底部圖片分隔,boolean
android:switchMinWidth:設(shè)置開關(guān)的最小寬度
android:switchPadding:設(shè)置滑塊內(nèi)文字的間隔
android:switchTextAppearance:設(shè)置開關(guān)的文字外觀,暫時(shí)沒發(fā)現(xiàn)有什么用...
android:textOff:按鈕沒有被選中時(shí)顯示的文字
android:textOn:按鈕被選中時(shí)顯示的文字
android:textStyle:文字風(fēng)格,粗體,斜體寫劃線那些
android:track:底部的圖片
android:thumb:滑塊的圖片
android:typeface:設(shè)置字體,默認(rèn)支持這三種:sans, serif, monospace;除此以外還可以使用 其他字體文件(*.ttf),首先要將字體文件保存在assets/fonts/目錄下,不過需要在Java代碼中設(shè)置: Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"); textView.setTypeface(typeFace);

5.SeekBar

好吧,基本用法其實(shí)很簡單,常用的屬性無非就下面這幾個(gè)常用的屬性,Java代碼里只要setXxx即可:

android:max="100" //滑動(dòng)條的最大值
android:progress="60" //滑動(dòng)條的當(dāng)前值
android:secondaryProgress="70" //二級(jí)滑動(dòng)條的進(jìn)度
android:thumb = "@mipmap/sb_icon" //滑塊的drawable

接著要說下SeekBar的事件了,SeekBar.OnSeekBarChangeListener 我們只需重寫三個(gè)對(duì)應(yīng)的方法:

onProgressChanged:進(jìn)度發(fā)生改變時(shí)會(huì)觸發(fā)
onStartTrackingTouch:按住SeekBar時(shí)會(huì)觸發(fā)
onStopTrackingTouch:放開SeekBar時(shí)觸發(fā)

6.ProgressBar

常用屬性詳解:

  • android:max:進(jìn)度條的最大值
  • android:progress:進(jìn)度條已完成進(jìn)度值
  • android:progressDrawable:設(shè)置軌道對(duì)應(yīng)的Drawable對(duì)象
  • android:indeterminate:如果設(shè)置成true,則進(jìn)度條不精確顯示進(jìn)度
  • android:indeterminateDrawable:設(shè)置不顯示進(jìn)度的進(jìn)度條的Drawable對(duì)象
  • android:indeterminateDuration:設(shè)置不精確顯示進(jìn)度的持續(xù)時(shí)間
  • android:secondaryProgress:二級(jí)進(jìn)度條,類似于視頻播放的一條是當(dāng)前播放進(jìn)度,一條是緩沖進(jìn)度,前者通過progress屬性進(jìn)行設(shè)置!
對(duì)應(yīng)的再Java中我們可調(diào)用下述方法:
  • getMax():返回這個(gè)進(jìn)度條的范圍的上限
  • getProgress():返回進(jìn)度
  • getSecondaryProgress():返回次要進(jìn)度
  • incrementProgressBy(int diff):指定增加的進(jìn)度
  • isIndeterminate():指示進(jìn)度條是否在不確定模式下
  • setIndeterminate(boolean indeterminate):設(shè)置不確定模式下

7.ScrollView(滾動(dòng)條)

scrollView.fullScroll(ScrollView.**FOCUS_DOWN**);滾動(dòng)到底部
scrollView.fullScroll(ScrollView.**FOCUS_UP**);滾動(dòng)到頂部

垂直方向滑塊:android:scrollbarThumbVertical
水平方向滑塊:android:scrollbarThumbHorizontal

滾動(dòng)速度
@Override
public void fling(int velocityY) {
    super.fling(velocityY / 2);    //速度變?yōu)樵瓉淼囊话?}

8.DatePicker(日期選擇器)

可供我們使用的屬性如下:
android:calendarTextColor : 日歷列表的文本的顏色
android:calendarViewShown:是否顯示日歷視圖
android:datePickerMode:組件外觀,可選值:spinner,calendar 前者效果如下,默認(rèn)效果是后者
android:dayOfWeekBackground:頂部星期幾的背景顏色
android:dayOfWeekTextAppearance:頂部星期幾的文字顏色
android:endYear:去年(內(nèi)容)比如2010
android:firstDayOfWeek:設(shè)置日歷列表以星期幾開頭
android:headerBackground:整個(gè)頭部的背景顏色
android:headerDayOfMonthTextAppearance:頭部日期字體的顏色
android:headerMonthTextAppearance:頭部月份的字體顏色
android:headerYearTextAppearance:頭部年的字體顏色
android:maxDate:最大日期顯示在這個(gè)日歷視圖mm / dd / yyyy格式
android:minDate:最小日期顯示在這個(gè)日歷視圖mm / dd / yyyy格式
android:spinnersShown:是否顯示spinner
android:startYear:設(shè)置第一年(內(nèi)容),比如19940年
android:yearListItemTextAppearance:列表的文本出現(xiàn)在列表中。
android:yearListSelectorColor:年列表選擇的顏色

9.CalendarView(日歷視圖)

android:firstDayOfWeek:設(shè)置一個(gè)星期的第一天
android:maxDate :最大的日期顯示在這個(gè)日歷視圖mm / dd / yyyy格式
android:minDate:最小的日期顯示在這個(gè)日歷視圖mm / dd / yyyy格式
android:weekDayTextAppearance:工作日的文本出現(xiàn)在日歷標(biāo)題縮寫

10.Spinner(列表選項(xiàng)框)

android:dropDownHorizontalOffset:設(shè)置列表框的水平偏移距離
android:dropDownVerticalOffset:設(shè)置列表框的水平豎直距離
android:dropDownSelector:列表框被選中時(shí)的背景
android:dropDownWidth:設(shè)置下拉列表框的寬度
android:gravity:設(shè)置里面組件的對(duì)其方式
android:popupBackground:設(shè)置列表框的背景
android:prompt:設(shè)置對(duì)話框模式的列表框的提示信息(標(biāo)題),只能夠引用string.xml 中的資源id,而不能直接寫字符串
android:spinnerMode:列表框的模式,有兩個(gè)可選值: dialog:對(duì)話框風(fēng)格的窗口 dropdown:下拉菜單風(fēng)格的窗口(默認(rèn))
可選屬性:android:entries:使用數(shù)組資源設(shè)置下拉列表框的列表項(xiàng)目

11AutoCompleteTextView

android:completionHint:設(shè)置下拉菜單中的提示標(biāo)題
android:completionHintView:定義提示視圖中顯示下拉菜單
android:completionThreshold:指定用戶至少輸入多少個(gè)字符才會(huì)顯示提示
android:dropDownAnchor:設(shè)置下拉菜單的定位"錨點(diǎn)"組件,如果沒有指定改屬性, 將使用該TextView作為定位"錨點(diǎn)"組件
android:dropDownHeight:設(shè)置下拉菜單的高度
android:dropDownWidth:設(shè)置下拉菜單的寬度
android:dropDownHorizontalOffset:指定下拉菜單與文本之間的水平間距
android:dropDownVerticalOffset:指定下拉菜單與文本之間的豎直間距
android:dropDownSelector:設(shè)置下拉菜單點(diǎn)擊效果
android:popupBackground:設(shè)置下拉菜單的背景
MultiAutoCompleteTextView(多提示項(xiàng)的自動(dòng)完成文本框) 和這個(gè)AutoCompleteTextView作用差不多

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評(píng)論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,348評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,442評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,802評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,983評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,542評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,287評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,486評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,710評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評(píng)論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,224評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,462評(píng)論 2 378

推薦閱讀更多精彩內(nèi)容