Android常用控制元件
Android提供了大量的UI控制元件,下面我們就來探討最常用的幾種控制元件,
- TextView
- Button
- EditText
ImageIView
ProgressBar
AlerDialog
ProgresBar- AlertDialog
ProgressDialog
1、基本屬性講解
- layout_ width: 組件的寬度
- layout_height: 組件的高度
- id: 為TextView設定一 個組件id
- text: 設定顯示的文本內容
- textColor: 設定字體顏色(顏色的中英文對照及代碼)
- textStyle: 設定字體風格,三個可選值: normal(無效果), bold(加粗), italic(斜體)
- textSize:字體大小,單位-般是用sp
- background: 控制元件的背景顏色,可以理解為填充整個控制元件的顏色,可以是圖片
- gravity; 設定控制元件中內容的對齊方向,TextView中 是文字,ImageView中是圖片等等
2、TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is Text view"
android:textSize="40sp"
android:textColor=" #DC143C"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
Android中所有的控制元件都有這三個屬性match_parent、fill_parent和wrap_parent,其中match_parent和fill_parent意義相同,官方推薦使用match_parent,
① match_parent表示當前控制元件的大小和父布局的大小一樣,由父布局去決定,
②wrap_parent表示控制元件剛好能包含內容,控制元件大小由內容決定,
③android:gravity可用來指定文字的對其方式,可選值有top、bottom、left、right、center等,
④android:textSize屬性設定文字的大小
⑤android:textColor屬性設定文字的顏色
3、Button
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:textAllCaps="false"
android:background="#BA55D3"
/>
textAllCaps=“false”,由于系統會自動把按鈕上的文字自動轉換成大寫,我們可以用這個代碼禁用,背景顏色默認是設定不了的,所以需要去修改檔案的配置,詳情操作請點擊參考這個鏈接的文章,
3.1、在MainActivity中為Button的點擊事件注冊一個監聽器
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//此處添加邏輯
}
});
}
}
當點擊按鈕的時候,系統就會去執行監聽器的onClick()的方法,
4、EditText
EditText 在開發中也是經常用到的控制元件,也是一個比較必要的組件,可以說它是用戶跟Android應用進行資料傳輸的窗戶,比如實作一個登陸界面,需要用戶輸入賬號密碼,然后我們獲取用戶輸入的內容,提交給服務器進行判斷,
<TextView
android:id="@+id/edit_query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Type something here"
android:maxLines="2"
/>
①android:hint屬性指定一些提示性的文本
②android:maxLines屬性限制EditText的最大行數
5、ImageView
ImageView(影像視圖),直接繼承自View類,它的主要功能是用于顯示圖片,實際上它不僅僅可以用來顯示圖片,任何Drawable物件都可以使用ImageView來顯示,ImageView可以適用于任何布局中,并且Android為其提供了縮放和著色的一些操作,
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img"/>
android:src屬性給ImageView指定了一張圖片
5.1、通過代碼動態更改ImageView中的圖片,需要修改MainAcvtivity的代碼
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button1);
imageView=(ImageView)findViewById(R.id.image);
button.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.button1://如果點擊按鈕button1就會執行下面的操作
imageView.setImageResource(R.drawable.image2);//setImageResource()方法將顯示的圖片改為image2
break;
default:
break;
}
}
}
6、ProgressBar
ProgressBar是Android下的進度條,也是為數不多的直接繼承于View類的控制元件,直接子類有AbsSeekBar和ContentLoadingProgressBar,其中AbsSeekBar的子類有SeekBar和RatingBar,
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
通常我們這個控制元件用android:visibility屬性進行指定它是否可見,可選值有:visible,invisible和gone,
①visible表示控制元件可見,這個是默認值,
②invisible表示控制元件不可見,但是它依然占據原來的位置和大小,
③gone表示控制元件不可見,并且不再占用任何螢屏空間,
④代碼設定控制使用的方法為setVisibility()
7、AlerDialog
AlertDialog:是一種警告,提醒對話框;
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
可通過·style屬性將他改成不同型別的進度條
7.1MainActivity中的代碼如下:
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button_1);
progressBar=(ProgressBar)findViewById(R.id.progress_bar) ;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.button_1:
if (progressBar.getVisibility()==View.GONE){//getVisibility()方法判斷ProgressBar是否可見
progressBar.setProgress(View.VISIBLE);
}
else {
progressBar.setVisibility(View.GONE);
}
}
}
});
}
}
8、ProgressDialog
ProgressDialog繼承自AlertDialog,AlertDialog繼承自Dialog,ProgressDialog的創建方式有兩種,一種是new
ProgressDialog,一種是呼叫ProgressDialog的靜態方法show()創建并顯示,這種進度條只能是圓形條,
運行效果:

MainActivity中的代碼如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button_1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.button_1:
ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);//構建ProgressDialog物件
progressDialog.setTitle("This is ProgressDialog");//設定標題
progressDialog.setMessage("loading");//設定內容
progressDialog.setCancelable(true);//如果傳入的是false,表示ProgressDialog是不能通過back建取消的
progressDialog.show();//將ProgressDialog顯示出來
break;
default:
break;
}
}
});
}
}
諺語
惜時、專心、苦讀是做學問的一個好方法,——蔡尚思
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/272916.html
標籤:其他
