Android UI 控件 和 對應經常使用方法詳細總結

 

設計和代碼切換,通常狀況下,咱們 UI 佈局都是先拖再細調整,也就是先用設計默認拖出一個大概的佈局,而後用代碼來微調html

 

 1. TextView 文本框

TextView 繼承於 Viewjava

1.1 經常使用屬性

 

屬性 說明
android:id 爲 TextView 設置一個組件 id,方便在 Java 中經過 findViewById() 方法獲取到該對象
android:layout_width TextView 的寬度,值通常爲 wrap_content 或者 match_parent(fill_parent),前者是控件顯示的內容多大,控件就多大,然後者會填滿該控件所在的父容器
固然也能夠設置成特定的大小,好比 200dp
android:layout_height TextView 的寬度,內容同上
android:gravity 設置控件中的內容的對齊方向,能夠是
top / button / left / right / center_vertical / fill_vertical...
android:text 設置顯示的文本內容,通常將字符串寫到 string.xml 文件,而後經過 @string/xxx 來引用
android:textColor 設置字體顏色,通常將顏色寫入 colors.xml 文件,而後經過 @color/xxx 引用
android:textStyle 設置字體風格,能夠用豎線(|)疊加,好比 bold|italic
有三個可選值:
normal(無效果)
bold(加粗)
italic(斜體)
android:textSize 設置字體大小,單位通常用 sp
android:background 設置 TextView 的背景顏色,能夠是圖片

跑馬燈效果:android

屬性 說明
android:singleLine 設置是否單行顯示
android:ellipsize 設置文字超出控件寬度時的顯示方式,值有
end 顯示結尾部分
marquee 跑馬燈滾動顯示
middle 顯示中間部分
none 默認
start 顯示開始部分
android:marqueeRepeatLimit 設置跑馬燈重複次數,值能夠是如下幾種
marquee_forever 重複
具體的數字,好比 2

識別連接效果:web

android:autoLink 屬性用於設置 TextView 是否識別連接類型和設置可識別的連接類型app

android:autoLink 的值有如下幾種ide

說明
none 不識別,禁用識別
all 能夠識別所有,也就是下面四種
email 電子郵件
map 地圖
phone 一串數字,或者以 tel:// 開頭的電話號碼
web 網頁地址,以 http(s):// 開頭的網址

設置 TextView 字間距佈局

屬性 android:textScaleX 控制字體水平方向的縮放,默認值 1.0f,類型值是 float字體

如: setScaleX(2.0f);

設置 TextView 行間距this

Android TextView 默認顯示中文時會比較緊湊,爲了讓每行保持的行間距,能夠設置以下屬性spa

屬性 說明
android:lineSpacingExtra 設置行間距,如"3dp"
android:lineSpacingMultiplier 設置行間距的倍數,如 "1.2"
如:setLineSpacing(1.5)

1.2 經常使用方法

void append(CharSequence text); //增長文字

CharSequence getText(); // 獲取文章文字

int getTextSize(); 

int length();

 

2. EditText 輸入框

EditText 繼承於 TextView

2.1 經常使用屬性

屬性 說明
android:hint 提示文本的內容,好比 "請輸入帳戶名稱"
android:textColorHint 提示文本的顏色
android:selectAllOnFocus ="true",得到焦點獲取文本全部內容
android:minLines="3" 設置最小行的行數爲 3
android:maxLines="3" 設置 EditText 最大的行數爲 3
當輸入內容超過 maxline,文字會自動向上滾動
android:singleLine="true" 限制 EditText 只容許單行輸入,並且不會滾動

android:inputType :對輸入文本類型進行限制

文本類型,多爲大寫、小寫和數字符號

android:inputType="none"  
android:inputType="text"  
android:inputType="textCapCharacters"  
android:inputType="textCapWords"  
android:inputType="textCapSentences"  
android:inputType="textAutoCorrect"  
android:inputType="textAutoComplete"  
android:inputType="textMultiLine"  
android:inputType="textImeMultiLine"  
android:inputType="textNoSuggestions"  
android:inputType="textUri"  
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"  
android:inputType="textFilter"  
android:inputType="textPhonetic"

數值類型

android:inputType="number"  
android:inputType="numberSigned"  
android:inputType="numberDecimal"  
android:inputType="phone"         // 撥號鍵盤  
android:inputType="datetime"  
android:inputType="date"          // 日期鍵盤  
android:inputType="time"          // 時間鍵盤

2.2 經常使用方法

TextView 的方法,EditText 都有

.setText("success");

 

3. ImageView 圖像視圖

3.1 經常使用屬性

ImageView 有 2中屬性,分爲爲: src, backgroud,他們之間的區別是:

  1. background 一般指的都是 背景, 而 src 指的是 內容
  2. 當使用 src 填入圖片時, 是按照圖片大小直接填 ,不會進行拉伸。而使用 background 填入圖片,則是會根據 ImageView 給定的寬度來進行 拉伸

設置縮小放大的大小

android:adjustViewBounds 設置縮放時是否保持原圖長寬比
android:maxHeight 設置 ImageView 的最大高度
android:maxWidth 設置 ImageView 的最大寬度

 

3.2 經常使用方法

@Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.button:
                imageView.setImageResource(R.drawable.image_2); // 修改圖片
                break;
            default:
                break;
        }
    }

4. Button 按鈕

4.1 經常使用屬性

1. Button 繼承自 TextView ,因此能夠 使用 TextView 的那些屬性

2. 咱們能夠將 Button 的 android:background 屬性設置爲該 drawable 資源便可輕鬆實現按下 按鈕時不一樣的按鈕顏色或背景

下表列出了能夠設置的屬性

屬性 說明
drawable 引用的 Drawable 位圖,能夠把它放到最前面,就表示組件的正常狀態
android:state_focused 是否得到焦點
android:state_window_focused 是否得到窗口焦點
android:state_enabled 控件是否可用
android:state_checkable 控件能否被勾選,例如,checkbox
android:state_checked 控件是否被勾選
android:state_selected 控件是否被選擇,針對有滾輪的狀況
android:state_pressed 控件是否被按下
android:state_active 控件是否處於活動狀態,例如,SlidingTab
android:state_single 控件包含多個子控件時,肯定是否只顯示一個子控件
android:state_first 控件包含多個子控件時,肯定第一個子控件是否處於顯示狀態
android:state_middle 控件包含多個子控件時,肯定中間一個子控件是否處於顯示狀態
android:state_last 控件包含多個子控件時,肯定最後一個子控件是否處於顯示狀態

在 res/drawable 目錄下新建一個按鈕狀態的資源文件 btn_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/btn_pressed"/>
    <item android:state_enabled="false" android:drawable="@drawable/btn_disabled"/>
    <item android:drawable="@drawable/btn_normal"/>
</selector>

 

 4.2 監聽方法

1. 一個按鈕的監聽方法

button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            //點擊Button會改變edittext的文字爲"點擊了Button"
            edittext.setText("點擊了Button");
            }
        });

2. 繼承於接口 OnClickListener 的監聽方法

public class MainActivity extends Activity implements OnClickListener {
    private EditText edittext;
    private Button button;
    private Button button2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edittext=(EditText) findViewById(R.id.edit_text);
        button = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button2);
        button.setOnClickListener(this);
        button2.setOnClickListener(this);
    }

    @Override
    //用switch區分是哪一個id
    public void onClick(View v) {
        switch (v.getId()){
        case R.id.button:
            edittext.setText("點擊了Button");
            break;
        case R.id.button2:
            edittext.setText("點擊了Button2");
            break;
        }
    }
}

 

5. RadioButton 單選按鈕

5.1 經常使用屬性

RadioButton 單選按鈕就是隻可以選中一個,因此咱們須要把 RadioButton 放到 RadioGroup 按鈕組中,從而實現單選功能

RadioButton 繼承自 Button,因此擁有 Button 的全部公開屬性和方法

RadioButton 只有兩個狀態,選中與未選中,因此也就只有一個屬性是最重要的,那就是 android:checked

屬性 說明
android:checked 設置或獲取 RadioButton 的選中狀態

若是 RadioButton 未選中,那麼點擊它可讓它選中,但反過來是不能夠的,就是不能從選中狀態到未選中狀態

 

5.2 監聽方法

RadioGroup 是單選組合框,用於 將 RadioButton 框起來。在多個 RadioButton被 RadioGroup 包含的狀況下,同一時刻只能夠選擇一個 RadioButton,並用 setOnCheckedChangeListener 來對 RadioGroup 進行監聽。

//調用setOnCheckedChangeListener來對RadioGroup進行監聽的代碼
        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if(checkedId == radiobutton1.getId()){
                    textView.setText("北京");
                }else if(checkedId == radiobutton2.getId()){
                    textView.setText("上海");
                }
            }
        });

6. RadioGroup 單選按鈕組

6.1 經常使用屬性

要實現 RadioButton 的 單選功能,須要把全部的 RadioButton 放到 RadioGroup 裏面

 用於將幾個 RadioButton 組在一塊兒造成單選按鈕組,實現單選功能,也就是選中一個,會取消其它選項的選中

 

RadioGroup 只提供了一個 XML 屬性 android:checkedButton 用於指定初始化時選中的 ID

屬性 說明
android:checkedButton 初始化時選中的選項 ID (android:id)

RadioGroup 提供了不少方法用於選中或者獲取選中的選項 ID ,下面列出經常使用的幾個

方法 說明
check(int id) 根據 id 選中某個選項
clearCheck() 清除全部選項的選中狀態,也就時一個都沒選中
getCheckedRadioButtonId() 獲取選中的選項 id
事件 說明
OnCheckedChangeListener 當 RadioGroup 中的某個選項被選中時觸發

 

7. CheckBox 複選框

 

7.1 經常使用屬性

Android CheckBox (複選框) 繼承自 Button ,能夠說是隻有兩種狀態的按鈕 (選中或未選中狀態)

能夠把多個 CheckBox 放在一塊兒實現同時選中多項,可是,記住,它們之間沒有任何關係,一個的選中並不會影響另外一個選中或者不選中

 

CheckBox 除了從 Button 繼承而來的屬性外,沒有本身的屬性,但從 CompoundButton 繼承了一個屬性 android:checked 用於表示是否選中

屬性 說明
android:checked 設置或者獲取 CheckBox 是否選中

 

7.2 監聽方法

CheckBox 提供了幾個方法和事件用於設置或者獲取自身是否選中狀態

方法 說明
isChecked() 判斷自身是否選中
setChecked(boolean checked) 設置自身是否選中狀態
事件 說明
OnCheckedChangeListener 選中狀態改變監聽器,當自身選中狀態變化時會觸發這個事件

 

8. ToggleButton 開關按鈕

8.1 經常使用屬性

ToggleButton (開關按鈕) 容許咱們在兩個狀態之間切換,有點相似於電燈的開關

ToggleButton 和 CheckBox 同樣都繼承自 CompoundButton ,因此都有 Button 的屬性和方法,又有 CompoundButton 的屬性 android:checked

屬性 說明
android:disabledAlpha 當 ToggleButton 處於 禁用 時的透明度
android:textOff 當 ToggleButton 處於  時的文本,如:android:textOff="關閉"
android:textOn 當 ToggleButton 處於  時的文本

 

8.2 監聽方法

ToggleButton 提供了一些方法用來改變或獲取自身的狀態和開關時的文本

方法 說明
getTextOff() 獲取 ToggleButton 關時顯示的文本
getTextOn() 獲取 ToggleButton 開時顯示的文本
setChecked(boolean checked) 設置 ToggleButton 是否選中
setTextOff(CharSequence textOff) 設置 ToggleButton 關時顯示的文本
setTextOn(CharSequence textOn) 設置 ToggleButton 開時顯示的文本
toggle() 改變 ToggleButton 的開關狀態
事件 說明
CompoundButton.OnCheckedChangeListener 當 ToggleButton 的開關狀態改變時觸發

 

 

9. Switch 開關

9.1 經常使用屬性

容許咱們在兩個狀態之間切換,有點相似於如今流行的滑動解鎖

Switch (開關) 也繼承自 Button 和 CompoundButton,因此擁有它們的屬性、方法和事件

不過 Switch 也擁有本身的屬性,並且特別的多

 

屬性 說明
android:showText 設置 on/off 的時候是否顯示文字
android:splitTrack 是否設置一個間隙,讓滑塊與底部圖片分隔
android:switchMinWidth 設置開關的最小寬度
android:switchPadding 設置滑塊內文字的間隔
android:switchTextAppearance 設置開關的文字外觀
android:textOff 按鈕沒有被選中時顯示的文字
android:textOn 按鈕被選中時顯示的文字
android:textStyle 文本的樣式(普通,粗體,斜體,粗體)
android:track 底部的圖片
android:thumb 滑塊的圖片
android:typeface 設置字體,默認支持這三種:sans, serif, monospace

 

9.2 監聽方法

Switch 提供了一些方法用來改變或獲取自身的狀態和開關時的文本

方法 說明
getTextOff() 獲取 Switch 關時顯示的文本
getTextOn() 獲取 Switch 開時顯示的文本
setChecked(boolean checked) 設置 Switch 是否選中
setTextOff(CharSequence textOff) 設置 Switch 關時顯示的文本
setTextOn(CharSequence textOn) 設置 Switch 開時顯示的文本
toggle() 改變 Switch 的開關狀態
事件 說明
CompoundButton.OnCheckedChangeListener 當 Switch 的開關狀態改變時觸發

 

10. ProgressBar 進度條

10.1 經常使用屬性

 ProgressBar(進度條) 能夠用來顯示一個操做的進度,通常用於比較耗時的地方,好比下載進度條,好比加載等待

ProgressBar 有兩種模式,肯定性 和 不肯定性的 ,有兩種外觀模式,條形 和 圓形,因此總共有四種,這涉及到兩個屬性

屬性 說明
android:indeterminate 是否顯示不肯定模式,默認爲 true
style ProgressBar 的外觀樣式

android:style 屬性有如下幾個值能夠選擇

屬性 說明
Widget.ProgressBar.Horizontal  
Widget.ProgressBar.Small  
Widget.ProgressBar.Large  
Widget.ProgressBar.Inverse  
Widget.ProgressBar.Small.Inverse  
Widget.ProgressBar.Large.Inverse

 其餘屬性

屬性 說明
android:max 進度條的最大值
android:progress 進度條已完成進度值
android:progressDrawable 設置軌道對應的Drawable對象
android:indeterminate 若是設置成true,則進度條不精確顯示進度
android:indeterminateDrawable 設置不顯示進度的進度條的Drawable對象
android:indeterminateDuration 設置不精確顯示進度的持續時間
android:secondaryProgress 二級進度條,相似於視頻播放的一條是當前播放進度,一條是緩衝進度,前者經過 progress 屬性進行設置

 

10.2 監聽方法

 

方法 說明
getMax() 返回這個進度條的範圍的上限
getProgress() 返回進度
getSecondaryProgress() 返回次要進度
incrementProgressBy(int diff) 指定增長的進度
isIndeterminate() 指示進度條是否在不肯定模式下
setIndeterminate(boolean indeterminate) 設置不肯定模式下

 

11. SeekBar ( 拖動條 ) 控件

11.1 經常使用屬性

SeekBar ( 拖動條 ) 控件通常用於音樂播放器或者視頻播放器的音量控制或者播放進度控制

SeekBar 是 ProgressBar 的子類,因此 ProgressBar的屬性均可以用

SeekBar 有如下幾個簡單的屬性

屬性 說明
android:max ="100" 滑動條的最大值
android:progress="60" 滑動條的當前值
android:secondaryProgress="70" 二級滑動條的進度
android:thumb = "@mipmap/sb_icon" 滑塊的 drawable

 

11.2 監聽方法

 

SeekBar 內置了 SeekBar.OnSeekBarChangeListener 事件

該事件會觸發三個方法

方法 說明
onProgressChanged 進度發生改變時會觸發
onStartTrackingTouch 按住 SeekBar 時會觸發
onStopTrackingTouch 放開 SeekBar 時觸發
相關文章
相關標籤/搜索