以下知識(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作用差不多