//此係列博文是《第一行Android代碼》的學習筆記,若有錯漏,歡迎指正!android
Android 給咱們提供了大量的 UI控件,下面咱們簡單試試幾種經常使用的控件。ide
1、TextView佈局
在佈局文件中加入TextView元素:學習
1 <TextView android:text="This is TextView!"
2 android:gravity="center"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:textSize="34sp"
6 android:textColor="#000000"/>
代碼的意思顯而易見,id是當前控件的惟一標識符,text是所要顯示的文本內容,width和height能夠控制控件的寬和高,通常有三種可選值: match_parent、fill_parent 和 wrap_content,其中 match_parent 和fill_parent的意義相同。match_parent 表示讓當前控件的大小和父佈局的大小同樣。wrap_content 表示讓當前控件的大小可以恰好包含住裏面的內容,也就是由控件內容決定當前控件的大小。咱們也能夠對控件的寬和高指定一個固定的大小,可是這樣作有時會在不一樣手機屏幕的適配方面出現問題。TextView的文本是默認左上角對齊的,但咱們可使用 android:gravity來指定文字的對齊方式, 可選值有 top、 bottom、 left、 right、 center等 , 可 以 用 「 | 」 來 同 時 指 定 多 個 值 , 這 裏 我 們 指 定 的 "center" , 效 果 等 同 於"center_vertical|center_horizontal",表示文字在垂直和水平方向都居中對齊。另外textSize用於指定字體大小,textColor用於指定字體顏色。此時的PreView界面是這樣的:字體
2、Buttonui
Button是程序用於和用戶進行交互的一個重要控件,它可配置的屬性和 TextView 是差很少的:this
1 <Button 2 android:id="@+id/button"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:text="Button" />
在主活動中咱們可使用匿名類爲button註冊一個監聽器,固然也可使用實現接口的方式。spa
3、EditText3d
EditText 是程序用於和用戶進行交互的另外一個重要控件,它容許用戶在控件裏輸入和編輯內容,並能夠在程序中對這些內容進行處理,應用場景廣泛。咱們在佈局文件中加入下列代碼:code
1 <EditText 2 android:id="@+id/edit_text"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:hint="Type something here"
6 android:textSize="24sp"
7 android:maxLines="2"
8 />
其中的hint用於在輸入框裏顯示一些提示性的文字,而後一旦用戶輸入了任何內容,這些提示性的文字就會消失。而maxLines則是限定了 EditText的最大行數爲兩行,這樣當輸入的內容超過兩行時,文本就會向上滾動,而 EditText 則不會再繼續拉伸。效果以下:
輸入文本超過兩行時:
天然,咱們能夠結合 EditText 與 Button 來完成一些功能,好比當想要經過點擊按鈕來獲取EditText中輸入的內容,能夠加入下列代碼:
1 public class MainActivity extends Activity implements OnClickListener { 2 private Button button; 3 private EditText editText; 4
5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 button = (Button) findViewById(R.id.button); 10
11 editText = (EditText) findViewById(R.id.edit_text); 12 button.setOnClickListener(this); 13 } 14
15 @Override 16 public void onClick(View v) { 17 switch (v.getId()) { 18 case R.id.button: 19 String inputText = editText.getText().toString(); 20 Toast.makeText(MainActivity.this, inputText,Toast.LENGTH_SHORT).show(); 22 break; 23 default: 24 break; 25 } 26 } 27 }
此時編輯完代碼後,按下button,屏幕下方就會彈出所編輯好的文本內容。
4、ImageView
ImageView是用於在界面上展現圖片的一個控件,使用這個控件之時,咱們須要先把一張圖片放到 drawable文件夾下(我放的圖片是pic.jpg),而後加入下列代碼:
1 <ImageView 2 android:id="@+id/image_view"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:src="@drawable/pic"
6 />
其中src語句是對圖片資源的引用。因爲圖片的寬和高都是未知的,因此將 ImageView的寬和高都設定爲 wrap_content,這樣保證了無論圖片的尺寸是多少均可以完整地展現出來。如今運行程序後即可看到圖片展現在屏幕上。
5、ProgressBar
ProgressBar用於在界面上顯示一個進度條, 表示咱們的程序正在加載一些數據。
1 <ProgressBar 2 android:id="@+id/progress_bar" 3 android:layout_width="match_parent" 4 android:layout_height="wrap_content" 5 style="?android:attr/progressBarStyleHorizontal" 6 android:max="100" 7 />
咱們使用style將其指定成水平進度條,並經過 android:max 屬性給進度條設置一個最大值,而後咱們即可以在代碼中動態地更改進度條的進度。在此以前,咱們須要用到 Android控件的可見屬性。 全部的Android控件都具備這個屬性, 能夠經過android:visibility進行指定,可選值有三種,visible、invisible 和 gone。visible 表示控件是可見的,這個值是默認值。invisible 表示控件不可見,可是它仍然佔據着原來的位置和大小。gone 則表示控件不只不可見,並且再也不佔用任何屏幕空間。咱們能夠經過代碼來設置控件的可見性,使用的是setVisibility()方法,能夠傳入 View.VISIBLE、View.INVISIBLE 和 View.GONE三種值。如今咱們修改MainActivity的代碼以下:
1 public class MainActivity extends Activity implements View.OnClickListener { 2 private Button button; 3 private ProgressBar progressBar; 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.content_main); 8 button = (Button) findViewById(R.id.button); 9 progressBar = (ProgressBar) findViewById(R.id.progress_bar); 10 button.setOnClickListener(this); 11 } 12 @Override 13 public void onClick(View v) { 14 switch (v.getId()) { 15 case R.id.button: 16 int progress = progressBar.getProgress(); 17 progress = progress + 25; 18 progressBar.setProgress(progress); 19 break; 20 default: 21 break; 22 } 23 } 24 }
代碼中咱們設定progressbar的最大值爲100,每按一次按鈕其值增長25,圖爲按了兩次按鈕的效果圖:
6、AlertDialog
AlertDialog能夠在當前的界面彈出一個對話框, 這個對話框是置頂於全部界面元素之上的,可以屏蔽掉其餘控件的交互能力,所以通常 AlertDialog 都是用於提示一些很是重要的內容或者警告信息。
咱們加入代碼以下:
1 @Override 2 public void onClick(View v) { 3 switch (v.getId()) { 4 case R.id.button: 5 AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); 6 dialog.setTitle("This is Dialog"); 7 dialog.setMessage("Something important."); 8 dialog.setCancelable(false); 9 dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 10 @Override 11 public void onClick(DialogInterface dialog, int which) { 12 } 13 }); 14 dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 15 @Override 16 public void onClick(DialogInterface dialog, int which) { 17 } 18 }); 19 dialog.show(); 20 break; 21 default: 22 break; 23 } 24 }
首先經過 AlertDialog.Builder 建立出一個 AlertDialog的實例,而後能夠爲這個對話框設置標題、內容、能否取消等屬性,接下來調用 setPositiveButton()方法爲對話框設置肯定按鈕的點擊事件,調用 setNegativeButton()方法設置取消按鈕的點擊事件,最後調用 show()方法將對話框顯示出來。
運行效果以下:
控件的學習在此先告一段落,其餘的有須要能夠在網上搜一下。
//End.