国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android中常用的控件

2019-11-06 09:42:06
字體:
供稿:網(wǎng)友

這里主要涉及到的控件包括: 文本類控件 TextView 負(fù)責(zé)展示文本,非編輯 EditText 可編輯文本控件 按鈕類控件 Button 按鈕 ImageButton 圖片按鈕 RadioButton與RadioGroup 單選按鈕 CheckBox 復(fù)選按鈕 圖片控件 ImageView 負(fù)責(zé)顯示圖片 進(jìn)度條控件 PRogressBar 進(jìn)度條

設(shè)置控件的屬性有兩種方法,一種是在布局文件中設(shè)置參數(shù),另一種是在代碼中調(diào)用對(duì)應(yīng)方法實(shí)現(xiàn),以下描述的都只是在布局文件中設(shè)置參數(shù)的方法。

介紹這些控件之前先介紹下所有控件都有的4個(gè)屬性id、layout_width以及l(fā)ayout_height,以及android:visibility。

android:id = "@+id/xxx" @+id/xxx表示新增控件命名為xxxandroid:layout_width = "xxx"android:layout_height = "xxx"//下面這個(gè)屬性默認(rèn)可以省略android:visibility = "visible"1234512345

其中l(wèi)ayout_width以及l(fā)ayout_height屬性可選值有兩種 match_parent和wrap_content(其實(shí)從Android 2.2開始fill_parent改名為match_parent ,從API Level為8開始我們可以直接用match_parent來代替fill_parent): match_parent表示讓當(dāng)前控件的大小和父布局的大小一樣,也就是由父布局來決定當(dāng)前控件的大??; wrap_content表示讓當(dāng)前控件的大小能夠剛好包含住里面的內(nèi)容,也就是由控件內(nèi)容決定當(dāng)前控件的大小。

android:visibility表示控件的可見屬性,所有的Android控件都具有這個(gè)屬性,可以通過 android:visibility 進(jìn)行指定,可選值有三種,visible、invisible 和 gone。visible 表示控件是可見的,這個(gè)值是 默認(rèn)值,不指定 android:visibility 時(shí),控件都是可見的。invisible 表示控件不可見,但是它仍 然占據(jù)著原來的位置和大小,可以理解成控件變成透明狀態(tài)了。gone 則表示控件不僅不可見, 而且不再占用任何屏幕空間。一般用在Activity中通過setVisibility方法來指定呈現(xiàn)與否。

1. 文本類控件TextView

TextView是 Android 程序開發(fā)中最常用的控件之一,主要功能是向用戶展示文本的內(nèi)容,它是不可編輯的 ,只能通過初始化設(shè)置或在程序中修改。

以下介紹一些常見的屬性,更多屬性可以參考TextView屬性大全

<TextView//控件idandroid:id = "@+id/xxx" @+id/xxx表示新增控件命名為xxx//寬度與高度android:layout_width="wrap_content" //wrap_content或者match_parentandroid:layout_height="wrap_content" //wrap_content或者match_parent//文本文字 android:text="@string/hello_world" //兩種方式,直接具體文本或者引用values下面的string.xml里面的元素//字體大小android:textSize="24sp" //以sp為單位//字體顏色android:textColor="#0000FF" //RGB顏色//字體格式android:textStyle="normal" //normal,bold,italic分別為正常,加粗以及斜體,默認(rèn)為normal//文本顯示位置android:gravity="center" //來指定文字的對(duì)齊方式,可選值有 top、bottom、left、right、center 等//是否只在一行內(nèi)顯示全部?jī)?nèi)容android:singleLine="true" //true或者false,默認(rèn)為false12345678910111213141516171819202122232425261234567891011121314151617181920212223242526

一般不對(duì)TextView文本進(jìn)行修改,所以在Activity中的使用此處略。

2. 文本類控件EditText

相比TextView, EditText是可以編輯的,可以用來與用戶進(jìn)行交互,其用法和TextView也是類似的,同樣,下面介紹一些常見的參數(shù),更多參數(shù)可以參考EditText屬性大全

//控件idandroid:id = "@+id/xxx" @+id/xxx表示新增控件命名為xxx//寬度與高度android:layout_width="wrap_content" //wrap_content或者match_parentandroid:layout_height="wrap_content" //wrap_content或者match_parent//文本文字 android:text="@string/hello_world" //兩種方式,直接具體文本或者引用values下面的string.xml里面的元素//文本提示內(nèi)容android:hint="hello_world" //android:text和android:hint區(qū)別是后者只是提示作用,真正需要輸入的時(shí)候提示的內(nèi)容會(huì)消失//字體大小android:textSize="24sp" //以sp為單位//字體顏色android:textColor="#0000FF" //RGB顏色//字體格式android:textStyle="normal" //normal,bold,italic分別為正常,加粗以及斜體,默認(rèn)為normal//文本顯示位置android:gravity="center" //來指定文字的對(duì)齊方式,可選值有 top、bottom、left、right、center 等//是否只在一行內(nèi)顯示全部?jī)?nèi)容android:singleLine="true" //true或者false,默認(rèn)為false//輸入內(nèi)容設(shè)置為passWord類型android:password="true" //輸入的內(nèi)容會(huì)變成······//輸入內(nèi)容設(shè)置為phoneNumber類型android:phoneNumber="true" //只能輸入數(shù)字//設(shè)定光標(biāo)為顯示/隱藏android:cursorVisible = "false" //true或者false,默認(rèn)為true顯示123456789101112131415161718192021222324252627282930313233343536123456789101112131415161718192021222324252627282930313233343536

在Activity中簡(jiǎn)單用法:

public class MainActivity extends Activity { //聲明一個(gè)EditText private EditText edittext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //給當(dāng)前的活動(dòng)加載一個(gè)布局 setContentView(R.layout.activity_main); //初始化edittext edittext=(EditText) findViewById(R.id.edit_text); }...... //在方法中調(diào)用給edittext賦值 edittext.setText("success");......}1234567891011121314151617181912345678910111213141516171819

3.按鈕類控件Button

Button控件也是使用過程中用的最多的控件之一,所以需要好好掌握。用戶可以通過單擊 Button 來觸發(fā)一系列事件,然后為 Button 注冊(cè)監(jiān)聽器,來實(shí)現(xiàn) Button 的監(jiān)聽事件。

首先來看下Button的配置屬性,其實(shí)和TextView差不多設(shè)置更簡(jiǎn)單點(diǎn),主要是顯示到Button上面的文字提示:

<Button//控件idandroid:id = "@+id/xxx" @+id/xxx表示新增控件命名為xxx//寬度與高度android:layout_width="wrap_content" //wrap_content或者match_parentandroid:layout_height="wrap_content" //wrap_content或者match_parent//按鈕上顯示的文字 android:text="theButton" //兩種方式,直接具體文本或者引用values下面的string.xml里面的元素@string/button//按鈕字體大小android:textSize="24sp" //以sp為單位//字體顏色android:textColor="#0000FF" //RGB顏色//字體格式android:textStyle="normal" //normal,bold,italic分別為正常,加粗以及斜體,默認(rèn)為normal//是否只在一行內(nèi)顯示全部?jī)?nèi)容android:singleLine="true" //true或者false,默認(rèn)為false12345678910111213141516171819202122231234567891011121314151617181920212223

然后我們需要在Activity中為Button的點(diǎn)擊事件注冊(cè)一個(gè)監(jiān)聽器,以下介紹兩種方式來實(shí)現(xiàn)按鈕監(jiān)聽事件,更多方法可以參考下Android的按鈕單擊事件及監(jiān)聽器的實(shí)現(xiàn)方式 1.通過匿名內(nèi)部類作為事件監(jiān)聽器類,這種方法適用于事件監(jiān)聽器只是臨時(shí)使用一次,因?yàn)榇蟛糠謺r(shí)候,事件處理器都沒有什么利用價(jià)值(可利用代碼通常都被抽象成了業(yè)務(wù)邏輯方法),這是一種使用最廣泛的方法:

public class MainActivity extends Activity { private EditText edittext; private Button button; @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); //為button按鈕注冊(cè)監(jiān)聽器,并通過匿名內(nèi)部類實(shí)現(xiàn) button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //點(diǎn)擊Button會(huì)改變edittext的文字為"點(diǎn)擊了Button" edittext.setText("點(diǎn)擊了Button"); } }); }}1234567891011121314151617181912345678910111213141516171819

2.使用實(shí)現(xiàn)接口的方式來進(jìn)行注冊(cè),讓Activity類實(shí)現(xiàn)了OnClickListener事件監(jiān)聽接口,從而可以在該Activity類中直接定義事件處理器方法:onClick(view v),當(dāng)為某個(gè)組件添加該事件監(jiān)聽器對(duì)象時(shí),直接使用this作為事件監(jiān)聽器對(duì)象即可:

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區(qū)分是哪個(gè)id public void onClick(View v) { switch (v.getId()){ case R.id.button: edittext.setText("點(diǎn)擊了Button"); break; case R.id.button2: edittext.setText("點(diǎn)擊了Button2"); break; } }}12345678910111213141516171819202122232425262728291234567891011121314151617181920212223242526272829

4.按鈕類控件ImageButton

ImageButton和Button類似,是一個(gè)按鈕,ImageButton可以實(shí)現(xiàn)我們?nèi)魏蜗胍膱D片按鈕的效果,比如我們租一個(gè)下載的按鈕等等。它要比button實(shí)現(xiàn)的要好看,并且體驗(yàn)要好很多, 不過它是以圖片作為背景,沒有文字。利用屬性android:src="圖片位置"來設(shè)置圖片背景。

下面還是先給出一些常見的屬性:

<ImageButton//控件idandroid:id = "@+id/xxx" @+id/xxx表示新增控件命名為xxx//寬度與高度android:layout_width="wrap_content" //wrap_content或者match_parentandroid:layout_height="wrap_content" //wrap_content或者match_parent//此外,可以具體設(shè)置高度和寬度顯示的像素,不過這樣設(shè)置如果圖片尺寸大于設(shè)置的顯示的尺寸,則圖片是顯示不全的,這是可以配合android:scaleType屬性。android:layout_width="200dp"android:layout_height="200dp" //把原圖按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,填滿ImageButton.android:scaleType="fitXY"//其他的關(guān)于android:scaleType的參數(shù)解釋,也可以參考下面的直觀圖//android:scaleType="center" 在視圖中心顯示圖片,并且不縮放圖片//android:scaleType="centercrop" 按比例縮放圖片,使得圖片長 (寬)的大于等于視圖的相應(yīng)維度//android:scaleType="centerinside" 按比例縮放圖片,使得圖片長 (寬)的小于等于視圖的相應(yīng)維度//android:scaleType="fitcenter" 按比例縮放圖片到視圖的最小邊,居中顯示//android:scaleType="fitend" 按比例縮放圖片到視圖的最小邊,顯示在視圖的下部分位置//android:scaleType="fitstart" 把圖片按比例擴(kuò)大/縮小到視圖的最小邊,顯示在視圖的上部分位置//android:scaleType="matrix" 用矩陣來繪制//圖片來源,需要將圖片復(fù)制放到res/drawable文件夾里面,引用的時(shí)候不需要寫圖片的后綴android:src ="@drawable/beautiful"> 123456789101112131415161718192021222324252627123456789101112131415161718192021222324252627

附上android:scaleType不同參數(shù)對(duì)應(yīng)效果圖: 這里寫圖片描述

ImageButton的用法在Button在Activity中的用法基本一致,可以參考上面關(guān)于Button的用法,此處略。

5.按鈕類控件RadioButton與RadioGroup

RadioButton(單選按鈕)在 Android 平臺(tái)上也比較常用,比如一些選擇項(xiàng)會(huì)用到單選按鈕。它是一種單個(gè)圓形單選框雙狀態(tài)的按鈕,可以選擇或不選擇。在 RadioButton 沒有 被選中時(shí),用戶通過單擊來選中它。但是,在選中后,無法通過單擊取消選中。

RadioGroup 是單選組合框,用于 將 RadioButton 框起來。在多個(gè) RadioButton被 RadioGroup 包含的情況下,同一時(shí)刻只可以選擇一個(gè) RadioButton,并用 setOnCheckedChangeListener 來對(duì) RadioGroup 進(jìn)行監(jiān)聽。

下面介紹RadioGroup的常用的屬性,因?yàn)槠渲邪蠷adioButton:

<RadioGroup android:id="@+id/radio_group" android:layout_width="wrap_content" android:layout_height="wrap_content" //設(shè)置RadioButton的排列方式,分為水平排列horizontal與垂直排列vertical android:orientation="horizontal" > <RadioButton android:id="@+id/rd1" android:layout_width="wrap_content" android:layout_height="wrap_content" //設(shè)置單選后緊跟的文本提示文字 android:text="北京" //設(shè)置文字的大小 android:textSize="30sp" //設(shè)置文字的顏色 android:textColor="#0000FF" //字體格式 android:textStyle="normal" //normal,bold,italic分別為正常,加粗以及斜體,默認(rèn)為normal /> <RadioButton android:id="@+id/rd2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:text="上海" /> </RadioGroup>12345678910111213141516171819202122232425261234567891011121314151617181920212223242526

下面給出在Activity中用 setOnCheckedChangeListener 來對(duì) RadioGroup 進(jìn)行監(jiān)聽的代碼, 注意RadioGroup中的RadioButton也都是需要聲明和通過控件的id來得到代表控件的對(duì)象。

public class MainActivity extends Activity{ ////對(duì)控件對(duì)象進(jìn)行聲明 private TextView textView; private RadioGroup radiogroup; private RadioButton radiobutton1; private RadioButton radiobutton2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //通過控件的ID來得到代表控件的對(duì)象 textView = (TextView) findViewById(R.id.text_view); radiogroup = (RadioGroup) findViewById(R.id.radio_group); radiobutton1 = (RadioButton) findViewById(R.id.rd1); radiobutton2 = (RadioButton) findViewById(R.id.rd2); //調(diào)用setOnCheckedChangeListener來對(duì)RadioGroup進(jìn)行監(jiān)聽的代碼 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("上海"); } } }); } }1234567891011121314151617181920212223242526272829303112345678910111213141516171819202122232425262728293031

6.按鈕類控件CheckBox

CheckBox(復(fù)選按鈕),顧名思義是一種可以進(jìn)行多選的按鈕,默認(rèn)以矩形表示。與 RadioButton 相同,它也有選中或者不選中雙狀態(tài)。我們可以先在布局文件中定義多選按鈕, 然后對(duì)每一個(gè)多選按鈕進(jìn)行事件監(jiān)聽 setOnCheckedChangeListener,通過 isChecked 來判斷 選項(xiàng)是否被選中,做出相應(yīng)的事件響應(yīng)。

下面給出CheckBox在布局文件中的常用的屬性以及用法:

<CheckBox android:id="@+id/cb1" android:layout_width="match_parent" android:layout_height="wrap_content" //設(shè)置復(fù)選按鈕后緊跟的文本提示文字 android:text="北京" //設(shè)置文字的大小 android:textSize="30sp" //設(shè)置文字的顏色 android:textColor="#0000FF" //字體格式 android:textStyle="normal" //normal,bold,italic分別為正常,加粗以及斜體,默認(rèn)為normal/><CheckBox android:id="@+id/cb2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="上海" android:textSize="30sp" android:textColor="#0000FF"/>1234567891011121314151617181912345678910111213141516171819

在Activity中調(diào)用的代碼如下:

public class MainActivity extends Activity{ ////對(duì)控件對(duì)象進(jìn)行聲明 private TextView textView; private CheckBox checkbox1; private CheckBox checkbox2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //通過控件的ID來得到代表控件的對(duì)象 textView = (TextView) findViewById(R.id.text_view); checkbox1 = (CheckBox) findViewById(R.id.cb1); checkbox2 = (CheckBox) findViewById(R.id.cb2); //為第一個(gè) CheckBox 注冊(cè)監(jiān)聽 checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //如果第一個(gè) CheckBox 被選中 if(isChecked == true){ textView.setText("CheckBox選中北京"); } } }); //為第二個(gè) CheckBox 注冊(cè)監(jiān)聽 checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //如果第二個(gè) CheckBox 被選中 if(isChecked == true){ textView.setText("CheckBox選中上海"); } } }); } }123456789101112131415161718192021222324252627282930313233343536373839123456789101112131415161718192021222324252627282930313233343536373839

7.圖片控件ImageView

ImageView 是一個(gè)圖片控件,負(fù)責(zé)顯示圖片,圖片的來源可以是系統(tǒng)提供的資源文件,也可以是 Drawable 對(duì)象,相對(duì)來說,圖片空間還是比較好掌握的,因?yàn)榍懊嬗兄v過ImageButton, 很多屬性都是相同的。 下面直接給出在布局中的屬性:

<ImageView//控件idandroid:id = "@+id/xxx" @+id/xxx表示新增控件命名為xxx//寬度與高度android:layout_width="wrap_content" //wrap_content或者match_parentandroid:layout_height="wrap_content" //wrap_content或者match_parent//此外,可以具體設(shè)置高度和寬度顯示的像素,不過這樣設(shè)置如果圖片尺寸大于設(shè)置的顯示的尺寸,則圖片是顯示不全的,這是可以配合android:scaleType屬性。android:layout_width="200dp"android:layout_height="200dp" //把原圖按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,填滿ImageButton.android:scaleType="fitXY"//其他的關(guān)于android:scaleType的參數(shù)解釋,也可以參考下面的直觀圖//android:scaleType="center" 在視圖中心顯示圖片,并且不縮放圖片//android:scaleType="centercrop" 按比例縮放圖片,使得圖片長 (寬)的大于等于視圖的相應(yīng)維度//android:scaleType="centerinside" 按比例縮放圖片,使得圖片長 (寬)的小于等于視圖的相應(yīng)維度//android:scaleType="fitcenter" 按比例縮放圖片到視圖的最小邊,居中顯示//android:scaleType="fitend" 按比例縮放圖片到視圖的最小邊,顯示在視圖的下部分位置//android:scaleType="fitstart" 把圖片按比例擴(kuò)大/縮小到視圖的最小邊,顯示在視圖的上部分位置//android:scaleType="matrix" 用矩陣來繪制//圖片來源,需要將圖片復(fù)制放到res/drawable文件夾里面,引用的時(shí)候不需要寫圖片的后綴android:src ="@drawable/beautiful"> 12345678910111213141516171819202122232425261234567891011121314151617181920212223242526

在Activity中因?yàn)椴恍枰O(shè)置監(jiān)聽,較簡(jiǎn)單,用法略。

8.進(jìn)度條控件ProgressBar

ProgressBar 用于在界面上顯示一個(gè)進(jìn)度條,表示我們的程序正在加載一些數(shù)據(jù),運(yùn)行程序,會(huì)看到屏幕中有一個(gè)圓形進(jìn)度條正在旋轉(zhuǎn)。 在布局xml文件中的用法非常簡(jiǎn)單:

<ProgressBar android:id="@+id/pb" android:layout_width="match_parent" android:layout_height="wrap_content" //默認(rèn)是圓形進(jìn)度條,可以知道樣式設(shè)置為水平進(jìn)度條 style="?android:attr/progressBarStyleHorizontal"/> //指定成水平進(jìn)度條后,我們還可以通過 android:max屬性給進(jìn)度條設(shè)置一個(gè)最大值,然后在代碼中動(dòng)態(tài)地更改進(jìn)度條的進(jìn)度 android:max="100"1234567812345678

那么如何才能讓進(jìn)度條在數(shù)據(jù)加載完成時(shí)消失呢,這里我們就需要用一開始所講的Android 控件的可見屬性。 可以通過代碼來設(shè)置控件的可見性,使用的是 setVisibility()方法,可以傳入 View.VISIBLE、View.INVISIBLE 和 View.GONE 三種值。

下面實(shí)現(xiàn)點(diǎn)擊一下按鈕讓進(jìn)度條消失,再點(diǎn)擊一下按鈕讓進(jìn)度條出現(xiàn)的這種效果,這里只給出按鈕監(jiān)聽的代碼:

button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //通過 getVisibility()方法來判斷 ProgressBar 是否可見 if (progressBar.getVisibility() == View.GONE) { progressBar.setVisibility(View.VISIBLE); } else { progressBar.setVisibility(View.GONE); } } });12345678910111234567891011

至此,關(guān)于Android的常用控件都已經(jīng)講了一遍,此處再對(duì)將關(guān)于TextView中文字單獨(dú)在一行顯示的時(shí)候?qū)崿F(xiàn)跑馬燈的方法補(bǔ)充下,這里直接給出代碼,也可以參考下這篇blog下android:ellipsize實(shí)現(xiàn)跑馬燈效果總結(jié)

<TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" //主要是以下5個(gè) android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode ="true" android:singleLine="true" />
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新乡市| 昌乐县| 万荣县| 桐柏县| 乌苏市| 拉萨市| 乌兰察布市| 筠连县| 太仆寺旗| 平潭县| 金湖县| 北辰区| 霍州市| 尼勒克县| 上蔡县| 五常市| 景宁| 云南省| 玉门市| 潞西市| 铜山县| 夏津县| 松桃| 兴义市| 永登县| 灵丘县| 阜新市| 同仁县| 马公市| 河北省| 九龙坡区| 乐至县| 方山县| 香港| 孝感市| 抚松县| 博白县| 湟源县| 庄浪县| 当雄县| 华安县|