安卓學習(初)第三章(1)(《第一行程式碼》)
佈局控制元件
一、TextView
1、<TextView>可以說是Android中最簡單的一個控制元件,主要用於在介面上顯示一段文字資訊。
2、指定控制元件的寬度和高度
android:layout_width="match_parent"
android:layout_height="wrap_content"
Android中所有的控制元件都有這2種屬性,可選三種值:match_parent,fill_parent,wrap_content。其中match_parent和fill_parent意義相同,都表示讓當前控制元件大小和父佈局的相同,只是官方更加推薦使用match_parent。wrap_content表示讓控制元件大小能夠剛好包含裡面的內容就行。當然,我們也可以對控制元件自定義指定高和寬,但是這樣會在不同手機螢幕的適配方面出現問題。
3、對TextView文字對齊方式
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" //這行程式碼就是指定下面文字的對齊方式
android:text="This is TextView" />
對齊方式可選值有:top、bottom、left、right、center等,可以用“|”來指定多種方式。如center效果等同於center_vertical | center_horizontal。若不指定任何,則預設向右上角對齊。
4、對TextView中文字大小、顏色修改。 如:android:textSize="24sp"對字型大小指定, android:textColor="#00ff00"對字型顏色指定。
*5、對於其他的文字具體屬性設定,可具體去查閱,主要寫法正確。
二、Button
1、這是在佈局新增一個按鍵的控制元件。
2、button命名為英文時系統預設名稱所有字母為大寫,可以以通過android:textAllCaps="false"來禁用這個預設。
3、在活動中註冊監聽器(見第二章內容)。
三、EditText
1、<EditText>是用於在佈局新增一個可供使用者新增文字的文字框。
2、在佈局中基礎呼叫:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
//佈局控制元件的基礎呼叫方式都基本相同,即寫好控制元件所屬標籤先給控制元件定義一個id再指定寬度高度。而個性新增會不同。
3、個性新增:
如 android:hint="something here",表示新增提示性文字為“something here”。
如android:maxLines="2",表示文字內容字元最多容納兩行。
4、獲取EditText的內容。第一步:editText=(EditText) findViewById(R.id.edit_tex);在oncreat方法中獲取例項(佈局控制元件在活動建立中獲取例項的方法都一樣,只是要改變方法中的引數即控制元件的地址)。第二步:String inputText=editText.getText().toString();把資料賦予inputText這個引數(editText的getText()方法獲取文字內容再通過toString()方法轉化成字串)。
四、ImageView
1、ImageView是用於在介面展示圖片的一個控制元件。
2、 在該佈局控制元件標籤中,寫android:src="@drawable/img_1",這就添加了一張圖片是在drawable目錄下的img_1圖片。所需要的圖片我們要額外手動在該資料夾下複製添進去並命名(上面的程式碼說明圖片被命名為img_1)。
3、同樣,在活動中應用控制元件都要在oncreate方法中建立例項,方法上面講過了。
4、在應用該控制元件時,imageView.setImageResource(R.drawable.img_2);表示切換圖片。通過imageView的setImageResource方法講圖片換成別的,其中它執行需要的一個引數便是新圖片的地址。
五、ProgressBar
1、ProgressBar控制元件用於在介面上顯示一個進度條(表示我們正在載入一些資料)。
2、設定進度條載入100%後消失。所有控制元件都有這個可見屬性,程式碼如:android:visibility=visible表示可見,不指定任何也是預設這樣為可見的,此外還可以指定invisible(表示不可見但仍然要佔螢幕位置)和gone(表示不僅不可見而且不佔用螢幕任何空間)。我們還可以在活動中用setVisibility()方法設定控制元件的可見性,setVisibility()裡的引數可以傳入View.INVISIBLE、View.VISIBLE和View.GONE結果對應上面的三種情況。示例:
@Override
public void onClick(View V) {
switch(v.getId){
case R.id.button: //這個switch的case是指不同button執行不同觸發活動,case後面跟button的地址
if(progressBar.getVisibility()==View.GONE){
progressBar.setVisibility(View.VISIBLE);
}else{ //表示如果進度條是不顯示狀況就變為顯示,否則變為不顯示
progressBar.setVisibility(View.GONE);
} //必須先建立Progress的物件例項
}
break;
default;
break;
}
}
3、進度條的樣式在ProresssBar標籤內引用style="?android:att/progressBarStyleHorizontal"可以改成水平進度條(預設情況下是圓形進度條)。然後用android:max="100",來設定進度條最大值(這設定了100為進度條最大值)。在活動中用動態進度條(用按鍵控制進度):
case R.id.button: //按鍵觸發
int progress=progressBar.getProgress(); //給引數賦值(獲取進度資料)
progress=progress+10; //改變引數值
progress.setProgress(progress); //把進度值改為引數值
*4、ProgressBar的樣式還有其他,自己去琢磨!
六、AlertDialog
1、AlertDialog控制元件是在當前的介面彈出一個對話方塊(這個對話方塊在所有介面元素之上)。
2、示例:
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this); //建立一個AlertDialog例項
dialog.setTitle("This is Dialog"); //對話方塊標題
dialog.setMessage("something important"); //對話方塊內容
dialog.setCancelable(false); //設定是否可取消屬性
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { //“OK”是設定按鈕的顯示名稱
@Override //對話方塊確認按鈕點選事件
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override //對話方塊取消按鈕點選事件
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
break;
default:
break;
}
}
七、ProgressDialog
1、ProgressDialog和AlertDialog有點類似。兩者都是在介面最上顯示對話方塊覆蓋其他功能。不同的是ProgressDialog會在對話方塊內顯示進度條。用法兩者相似。
2示例:
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);
progressDialog.setTitle("This is progressDialog");
progressDialog.setMessage("Loading……");
progressDialog.setCancelable(true);
progressDialog.show();
break;
default:
break;
}
}
3、注意:setCancelable()中傳入了false表示該對話方塊不能通過Back鍵取消掉。因此,如果傳入了false,在ProgressDialog型別的對話方塊中還要在程式碼中做好資料載入完自動呼叫ProgressDialog的dismiss()方法關閉對話方塊的控制。