標籤:
//此系列博文是《第一行Android代碼》的學習筆記,如有錯漏,歡迎指正!
Android 給我們提供了大量的 UI控制項,下面我們簡單試試幾種常用的控制項。
一、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介面是這樣的:
二、Button
Button是程式用於和使用者進行互動的一個重要控制項,它可配置的屬性和 TextView 是差不多的:
1 <Button2 android:id="@+id/button"3 android:layout_width="match_parent"4 android:layout_height="wrap_content"5 android:text="Button" />
在主活動中我們可以使用匿名類為button註冊一個監聽器,當然也可以使用實現介面的方式。
三、EditText
EditText 是程式用於和使用者進行互動的另一個重要控制項,它允許使用者在控制項裡輸入和編輯內容,並可以在程式中對這些內容進行處理,應用情境普遍。我們在布局檔案中加入下列代碼:
1 <EditText2 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 @Override16 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,螢幕下方就會彈出所編輯好的常值內容。
四、ImageView
ImageView是用於在介面上展示圖片的一個控制項,使用這個控制項之時,我們需要先把一張圖片放到 drawable檔案夾下(我放的圖片是pic.jpg),然後加入下列代碼:
1 <ImageView2 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,這樣保證了不管圖片的尺寸是多少都可以完整地展示出來。現在運行程式後便可看到圖片展示在螢幕上。
五、ProgressBar
ProgressBar用於在介面上顯示一個進度條, 表示我們的程式正在載入一些資料。
1 <ProgressBar2 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 @Override13 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,圖為按了兩次按鈕的:
六、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 @Override11 public void onClick(DialogInterface dialog, int which) {12 }13 });14 dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {15 @Override16 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.
Android學習筆記(七)——常見控制項