Android學習筆記(七)——常見控件

  //此係列博文是《第一行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 }
View Code

  代碼中咱們設定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     }
View Code

   首先經過 AlertDialog.Builder 建立出一個 AlertDialog的實例,而後能夠爲這個對話框設置標題、內容、能否取消等屬性,接下來調用 setPositiveButton()方法爲對話框設置肯定按鈕的點擊事件,調用 setNegativeButton()方法設置取消按鈕的點擊事件,最後調用 show()方法將對話框顯示出來。

  運行效果以下:

  

  控件的學習在此先告一段落,其餘的有須要能夠在網上搜一下。

 

  //End.

相關文章
相關標籤/搜索