Android開發(fā)與實踐-Android用戶界面_第1頁
Android開發(fā)與實踐-Android用戶界面_第2頁
Android開發(fā)與實踐-Android用戶界面_第3頁
Android開發(fā)與實踐-Android用戶界面_第4頁
Android開發(fā)與實踐-Android用戶界面_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第4章Android中用戶界面

Android系統(tǒng)為我們提供了豐富的可視化用戶界面組件,包括文本框、編輯框、普通按鈕、圖片按鈕、單選按鈕、復(fù)選按鈕、菜單、對話框、下拉列表等。4.1文本框(TextView)在Android中,文本框使用TextView表示,用于在屏幕上顯示文本,這與Java中的文本框組件不同,它相當(dāng)于Java中的標(biāo)簽,也就是JLable。需要說明的是,Android中的文本框組件可以顯示單行文本,也可以顯示多行文本,而且還可以顯示帶圖像的文本。在Android中,向屏幕中添加文本框,通過在XML布局文件中使用<TextView>標(biāo)記添加,在XML布局文件中添加文本框的基本的語法格式如下:<TextView

屬性列表/>TextView支持的常用XML屬性見課本43頁表4-1所示。4.2編輯框(EditText)在Android中,編輯框使用EditText表示,用于在屏幕上顯示文本輸入框,這與Java中的編輯框組件功能類似。需要說明的是,Android中的編輯框組件可以輸入單行文本,也可以輸入多行文本,而且還可以輸入指定格式的文本(例如,密碼、電話號碼、E-mail地址等)。

在Android中,向屏幕中添加編輯框,通過在XML布局文件中使用<EditText>標(biāo)記添加,在XML布局文件中添加編輯框的基本的語法格式如下:<EditText

屬性列表/>

由于EditText類是TextView的子類,所以對于表4-1中列出的XML屬性,同樣適用于EditText組件。特別需要注意的是android:inputType屬性,在EditText組件中,通過指定該屬性可以幫助輸入法顯示合適的類型。例如,要添加一個只能顯示電話號碼的編輯器,可以將android:inputType屬性設(shè)置為phone。下面給出一個關(guān)于文本框和編輯框的實例。

在Eclipse中創(chuàng)建Android項目,主要使用EditText組件實現(xiàn)用戶注冊信息的輸入功能。

修改新建項目的res/layout目錄下的布局文件main.xml,為默認(rèn)添加的垂直線性布局管理器<LinearLayout>設(shè)置背景,并為默認(rèn)添加的TextView組件設(shè)置高度和對其中的E-mail格式的文本設(shè)置超鏈接,修改后的代碼如下:<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="請輸入用戶名:"

android:textSize="12sp" /><EditText

android:layout_height="wrap_content"

android:layout_width="fill_parent"

android:inputType="text"

android:hint="請輸入用戶名" /><TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="請輸入用戶密碼:"

android:textSize="12sp" />

<EditText

android:layout_height="wrap_content"

android:layout_width="fill_parent"

android:inputType="textPassword"

android:hint="請輸入用戶密碼" /><TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="請輸入出生日期:"

android:textSize="12sp" /><EditText

android:layout_height="wrap_content"

android:layout_width="fill_parent"

android:inputType="date"

android:hint="請輸入出生日期" /><TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="請輸入手機(jī)號碼:"

android:textSize="12sp" />

<EditText

android:layout_height="wrap_content"

android:layout_width="fill_parent"

android:maxLength="11"

android:inputType="phone"

android:hint="請輸入手機(jī)號碼"

android:drawableLeft="@drawable/icon" />運行本實例,將顯示如圖4.1所示的運行結(jié)果。

圖4.1使用文本框和編輯框?qū)崿F(xiàn)用戶注冊信息的輸入4.3普通按鈕(Button)在Android中向屏幕中添加按鈕,首先在XML布局文件中使用<Button>標(biāo)記添加,也就是通過<Button>在XML布局文件中添加。在XML布局文件中添加普通按鈕的基本格式如下:<Button

android:text="顯示文本"

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>在屏幕上添加按鈕后,還需要為按鈕添加單擊事件監(jiān)聽器,才能讓按鈕發(fā)揮其特有的用途。其在Java代碼中完成,例如在Activity的onCreate()方法中完成,具體的代碼如下:importandroid.view.View.OnClickListener;importandroid.widget.Button;//通過ID獲取布局文件中添加的按鈕Buttonlogin=(Button)findViewById(R.id.login); //為按鈕添加單擊事件監(jiān)聽 login.setOnClickListener(new

OnClickListener(){ @Override publicvoidonClick(Viewv){ //編寫要執(zhí)行的動作代碼 }});4.4圖片按鈕(ImageButton)圖片按鈕與普通的使用方法基本相同,只不過圖片按鈕使用ImageButton關(guān)鍵字定義,并且還可以為其指定android:src屬性,該屬性用于設(shè)置要顯示的圖片。在布局文件中,添加圖片按鈕的基本格式如下:<ImageButton

android:id="@+id/imageButton1"

android:src="@drawable/圖片文件名"

android:background="#000"

android:layout_width="wrap_content"

android:layout_height="wrap_content"></ImageButton>下面給出一個關(guān)于圖片按鈕的實例。在Eclipse中創(chuàng)建Android項目,主要實現(xiàn)添加圖片按鈕的功能。修改新建項目的res/layout目錄下的布局文件main.xml,在其中添加一個ImageButton組件,并為其設(shè)置背景圖片,代碼如下:<ImageButton

android:id="@+id/login"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/login“

android:background="#000"/>運行本實例,將顯示如圖4.2所示的運行結(jié)果。

圖4.2圖片按鈕的使用4.5單選按鈕(RadioButton)在默認(rèn)的情況下,單選按鈕顯示一個圓形圖標(biāo),并且在該圖標(biāo)旁邊放置一些說明性文字,而在程序中,一般將多個單選按鈕放置在按鈕組中,使這些單選按鈕表現(xiàn)出某種功能,當(dāng)用戶選中某個單選按鈕后,按鈕組中的其他單選按鈕將被自動取消選取狀態(tài)。在Android中,單選按鈕使用RadioButton表示,而RadioButton類又是Button的子類,所以單選按鈕可以直接使用Button支持的各種屬性。

在Android中向屏幕中添加單選按鈕,通過在XML布局文件中使用<RadioButton>標(biāo)記添加,在XML布局文件中添加單選按鈕的基本格式如下:<RadioButton

android:text="顯示文本"

android:id="@+id/ID號"

android:checked="true|false"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>RadioButton組件的android:checked屬性用于指定選中狀態(tài),屬性值為true時,表示選中,屬性值為false時,表示不選中,默認(rèn)為false。通常情況下,RadioButton組件需要與RadioGroup組件一起使用,組成一個單選按鈕組。在XML布局文件中,添加RadioGroup組件的基本格式如下:<RadioGroup

android:id="@+id/radioGroup1"

android:orientation="horizontal"

android:layout_width="wrap_content"

android:layout_height="wrap_content"> <!--添加多個RadioButton組件--></RadioGroup>與普通按鈕相同,只有在屏幕上添加按鈕后,還需要為按鈕添加單擊事件監(jiān)聽,才能讓按鈕發(fā)揮其特有的用途。4.6復(fù)選按鈕(CheckBox)

在默認(rèn)的情況下,復(fù)選按鈕顯示一個方塊圖標(biāo),并且在該圖標(biāo)旁邊放置一些說明性文字。與單選按鈕唯一不同的是復(fù)選按鈕可以進(jìn)行多選設(shè)置,每一個復(fù)選按鈕都提供“選中”和“不選中”兩種狀態(tài)。在Android中,復(fù)選按鈕使用CheckBox表示,而CheckBox類又是Button的子類,所以復(fù)選按鈕可以直接使用Button支持的各種屬性。

在Android中向屏幕中添加復(fù)選按鈕,是通過在XML布局文件中使用<CheckBox>標(biāo)記添加。在XML布局文件中添加復(fù)選按鈕的基本格式如下:<CheckBox

android:text="顯示文本"

android:id="@+id/ID號"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>由于復(fù)選框可以選中多項,所以為了確定用戶是否選擇了某一項,還需要為每一個選項添加setOnCheckedChangeListener事件監(jiān)聽。例如,要為id為like1的復(fù)選按鈕添加狀態(tài)改變事件監(jiān)聽,可以使用下面的代碼:finalCheckBoxlike1=(CheckBox)findViewById(R.id.like1); //根據(jù)id屬性獲取復(fù)選按鈕like1.setOnCheckedChangeListener(newOnCheckedChangeListener(){ publicvoidonCheckedChanged(CompoundButton

buttonView,boolean

isChecked){//判斷該復(fù)選按鈕是否被選中

if(like1.isChecked()){ //獲取選中項的值 like1.getText(); } }});

4.7菜單

菜單的設(shè)計在人機(jī)交互中可以說是非常人性化的,它提供了不同功能分組展示的能力。Android中菜單分為三種類型:選項菜單(OptionMenu)、上下文菜單(ContextMenu)和子菜單(SubMenu)4.7.1選項菜單(OptionMenu)當(dāng)用戶單擊設(shè)備上的菜單(Menu)按鍵時,彈出的菜單就是選項菜單。選項菜單的菜單項最多只能有六個,超過六個第六個自動顯示“更多”選項來展開顯示。我們先來看一個Android系統(tǒng)自帶的選擇菜單功能,當(dāng)我們單擊“Menu”按鍵時,將彈出如圖4.3所示的選項菜單。圖4.3Android選項菜單4.7.1選項菜單(OptionMenu)我們也經(jīng)常會在程序里自己創(chuàng)建選項菜單。例如,我們設(shè)計了一款游戲,這就需要設(shè)計一個選項菜單給用戶提供交互接口。創(chuàng)建一個選項菜單需要如下步驟。

(1)覆蓋Activity的onCreateOptionsMenu(Menumenu)方法,當(dāng)我們第一次打開菜單時該方法被自動調(diào)用。(2)調(diào)用Menu的add()方法添加菜單項(MenuItem),可以調(diào)用MenuItem的setlcon()方法來為菜單項設(shè)置圖標(biāo)。(3)當(dāng)菜單項(Menuitem)被選擇時,覆蓋Activity的onOptionsltemSelected()方法來響應(yīng)事件.4.7.1選項菜單(OptionMenu)下面是一個創(chuàng)建并響應(yīng)菜單選項的實例代碼:packagecom.amaker.test;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.MenuItem;publicclassMainActivityextendsActivity{

privatestaticfinalintITEM1=Menu.FIRST;

privatestaticfinalintITEM2=Menu.FIRST+1;

publicvoidonCreate(Bundle

savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

4.7.1選項菜單(OptionMenu)/**覆蓋該方法添加菜單項*/

publicboolean

onCreateOptionsMenu(Menumenu){

menu.add(0,ITEM1,0,"開始");

menu.add(0,ITEM2,0,"退出");

returntrue;}

/**覆蓋該方法,響應(yīng)菜單選項被單擊事件*/

publicboolean

onOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){

caseITEM1:

setTitle("開始游戲!");

break;

caseITEM2:

setTitle("退出!");

break;}

returntrue;

}}4.7.1選項菜單(OptionMenu)

4.7.2上下文菜單當(dāng)用戶長時間按鍵不放時,彈出的菜單稱為上下文菜單。我們經(jīng)常在Windows中用鼠標(biāo)右鍵單擊彈出的菜單就是上下文菜單。我們還是先來看看Android系統(tǒng)中的上下文菜單應(yīng)用吧!當(dāng)我們在設(shè)備的啟動界面長時間按鍵不放時,會彈出如圖4.4所示的上下文菜單,代碼參見課本145頁。圖4.4系統(tǒng)上下文菜單4.7.2子菜單很好理解,子菜單就是將相同功能的分組進(jìn)行多級顯示的一種菜單,比如,Windows的“文件”菜單中又有“新建”、“打開”、“關(guān)閉”等子菜單,Android系統(tǒng)中的子菜單也很多見,如“Settings"(設(shè)置)菜單就有其子菜單,如圖4.5所示。

圖4.5測試子菜單4.8對話框?qū)υ捒蚴浅绦蜻\行中的彈出窗口。例如,當(dāng)用戶要刪除一個聯(lián)系方式時,會彈出一個對話框,讓用戶確認(rèn)是否真的要刪除。Android系統(tǒng)提供了四種對話框:警告對話框(AlertDialog)、進(jìn)度對話框(ProgressDiaiog)、日期選擇對話框(DatePickerDialog)和時間選擇對話框(TimePickerDialog),本節(jié)重點講述AlertDialog,其他對話框的應(yīng)用將在后續(xù)章節(jié)中進(jìn)行講述。

AlertDialog是一個提示窗口,要求用戶作出選擇。該對話框中一般會有幾個選擇按鈕、標(biāo)題信息和提示信息。在程序中創(chuàng)建對話框需要如下步驟。(1)獲得AlertDialog的靜態(tài)內(nèi)部類Builder對象,由該類來創(chuàng)建對話框。

4.8對話框

(2)通過Buidler;對象設(shè)置對話框的標(biāo)題、按鈕以及按鈕將要響應(yīng)的事件。(3)調(diào)用Builder的create()方法創(chuàng)建對話框。調(diào)用AlertDialog的show()方法顯示對話框。如下代碼創(chuàng)建了具有“是”、“否”按鈕和提示信息的對話框,用來確認(rèn)用戶的操作。packagecom.amaker.test;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.TextView;

4.8對話框

publicclassMainActivityextendsActivity{ privateTextView

myTV; privateButtonmyBtn;@OverridepublicvoidonCreate(Bundle

savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

myTV=(TextView)findViewById(R.id.TextView01);

myBtn=(Button)findViewById(R.id.Button01);finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this);

myBtn.setOnClickListener(new

OnClickListener(){

4.8對話框

publicvoidonClick(Viewv){

builder.setMessage("真的要刪除該記錄嗎?").setPositiveButton("是",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){

myTV.setText("刪除成功!");} }).setNegativeButton("否",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){

myTV.setText("取消刪除!");}});AlertDialogad=builder.create();

ad.show();} });}}

4.8對話框

4.9提示信息(Toast)提示信息(Toast)在程序中很常用,使用也很簡單。當(dāng)用戶執(zhí)行某個動作之后,顯示一個提示信息,過一會兒將自動消失,這就是Toast。

在程序中創(chuàng)建Toast的步驟說明如下。(1)調(diào)用Toast的靜態(tài)方法makeText()添加顯示文本和時長。(2)調(diào)用Toast的show()顯示。下面實例在屏幕上添加兩個按鈕:第一個按鈕響應(yīng)事件顯示一個長時間Toast;第二個按鈕響應(yīng)事件顯示短時間Toast。4.9提示信息(Toast)

packagecom.amaker.test;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.Toast;publicclassMainActivityextendsActivity{privateButtonb1,b2;@Override

4.9提示信息(Toast)

publicvoidonCreate(Bundle

savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);b1=(Button)findViewById(R.id.Button01);b2=(Button)findViewById(R.id.Button02);finalintl=Toast.LENGTH_LONG;finalints=Toast.LENGTH_SHORT;finalStrings1="我多顯示一會兒!";finalStrings2="我少顯示一會兒!";b1.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){Toastt1=Toast.makeText(getApplicationContext(),s1,l); t1.show();} });

4.9提示信息(Toast)

?

b2.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ Toastt2=Toast.makeText(getApplicationContext(),s2,s); t2.show(); } });

}}

4.9提示信息(Toast)

4.10進(jìn)度條我們在安裝一些軟件時,經(jīng)常會看到進(jìn)度條顯示安裝進(jìn)度?;蛘呶覀冊趫?zhí)行一些比較耗時的程序時,系統(tǒng)會彈出一個進(jìn)度對話框提示用戶等待。在Android系統(tǒng)中進(jìn)度條有很多種:對話框進(jìn)度條、標(biāo)題欄進(jìn)度條和水平進(jìn)度條,我們重點來看看水平進(jìn)度條。創(chuàng)建水平進(jìn)度條的步驟說明如下。(1)在布局文件中聲明ProgressBar。(2)在Activity中獲得ProgressBar實例。(3)調(diào)用ProgressBar的incrementProgressBy()方法增加或減少進(jìn)度。Activity代碼如下:4.10進(jìn)度條packagecom.amaker.test;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.ProgressBar;publicclassMainActivityextendsActivity{//聲明按鈕

privateButtonb1,b2;//聲明進(jìn)度條progressBar

ProgressBar

progressBar;

@Override

publicvoidonCreate(Bundle

savedInstanceState){

4.10進(jìn)度條super.onCreate(savedInstanceState);//設(shè)置當(dāng)前activity界面布局

setContentView(R.layout.main);//通過findViewbyId方法獲得Button實例

b1=(Button)findViewById(R.id.Button01);

b2=(Button)findViewById(R.id.Button02);//通過findViewbyId方法獲得ProgressBar實例progressBar=(ProgressBar)findViewById(R.id.ProgressBar01);//為按鈕添加事件監(jiān)聽器

b1.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){//增加進(jìn)度 progressBar.incrementProgressBy(1);

}

});

4.10進(jìn)度條//為按鈕添加事件監(jiān)聽器b2.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){//減少進(jìn)度

progressBar.incrementProgressBy(-1);

}

});

}}4.11事件處理Android系統(tǒng)中引用Java中的事件處理機(jī)制,包括事件、事件源和事件監(jiān)聽器三個方面。事件可以是鼠標(biāo)事件、鍵盤事件、觸摸事件或者鼠標(biāo)移動事件等;事件源是指產(chǎn)生時間的組件;事件監(jiān)聽器是組件產(chǎn)生事件時響應(yīng)的接口。舉例來說明三者的關(guān)系,現(xiàn)在高級轎車都有防盜功能,當(dāng)車產(chǎn)生強(qiáng)烈震動時就會報警。在這里事件是震動,事件源是車,事件監(jiān)聽器是報警器。4.11.1事件處理機(jī)制

Java中的事件角色有三個。.eventobject:就是事件產(chǎn)生時具體的“事件”,用于listener的相應(yīng)方法之中,作為參數(shù),一般存在于listerner的方法之中。.eventsource:具體接受事件的實體,比如說,你單擊一個button,那么button就是eventsource。.eventlistener:事件監(jiān)聽器,當(dāng)有其對應(yīng)的eventobject產(chǎn)生的時候,它就調(diào)用相應(yīng)的方法進(jìn)行處理。這種方式也被稱為方法回調(diào)(callback)。4.11.2Android中的事件監(jiān)聽器在Android系統(tǒng)中常見的事件監(jiān)聽器有如下幾種:·單擊事件(View.OnClickListener):當(dāng)用戶觸碰到某個組件或者方向鍵被按下時產(chǎn)生該事件,該事件的處理方法是onClick()..焦點事件(View.OnFocusChangeListener):組件得到或者失去焦點時產(chǎn)生該事件,事件處理方法是onFocusChange()..按鍵事件(View.OnKeyListener):用戶按下或者釋放設(shè)備上的某個按鍵時產(chǎn)生,事件處理方法是onKey().·觸碰事件(View.OnTouchListener):設(shè)備具有觸摸屏功能時,觸碰屏幕產(chǎn)生該事件,事件處理方法是onTouch()·4.11.2Android中的事件監(jiān)聽器.創(chuàng)建上下文菜單事件(View.OnCreateContextMenuListener):創(chuàng)建上下文菜單時產(chǎn)生該事件,事件處理方法是onCreateContextMenu().要實現(xiàn)事件處理,有如下幾個步驟。(1)創(chuàng)建事件監(jiān)聽器。

(2)給要響應(yīng)事件的組件注冊事件監(jiān)聽器。(3)在事件處理方法中編寫實現(xiàn)代碼。這里我們看一個用戶登錄的表單界面是如何來響應(yīng)用戶事件的。4.11.2Android中的事件監(jiān)聽器

//編輯文本框的焦點事件myEdit2.setOnFocusChangeListener(newOnFocusChangeListener(){publicvoidonFocusChange(Viewv,boolean

hasFocus){

Toast.makeText(getApplicationContext(),myEdit2.getText(),

Toast.LENGTH_LONG);}

});//多選框的選擇事件cb1.setOnCheckedChangeListener(newOnCheckedChangeListener(){

publicvoidonCheckedChanged(CompoundButton

buttonView,

boolean

isChecked){

Toast.makeText(getApplicationContext(),cb1.isChecked()+"",Toast.LENGTH_LONG);}

});4.11.2Android中的事件監(jiān)聽器

//按鈕的選擇事件b1.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){

Toast.makeText(getApplicationContext(),b1.getText(),Toast.LENGTH_LONG);

}

4.12布局管理所謂布局就是組件在Activity中的呈現(xiàn)方式,即組件大小、間距和對齊方式等。Android提供了以下兩種創(chuàng)建布局的方式:.在XML配置文件中聲明:這種方式是將需要呈現(xiàn)的組件在配置文件中進(jìn)行聲明,在程序中通過setContentView(R.layout.main)方法將視圖呈現(xiàn)在Activity中,通過findViewById方法獲得組件實例(推薦)。

.在程序中通過“硬代碼”直接實例化布局及其組件.4.12布局管理在Android中常見的布局方式有如下幾種:.線性布局(LinearLayout):按照垂直或者水平方向布局組件。.幀布局(FrameLayout):組件從屏幕的左上角坐標(biāo)布局組件。.表格布局(TabIeLayout):按照行列方式布局組件。.相對布局(RelativeLayout):相對其他組件的布局方式。.絕對布局(AbsoluteLayout):按照絕對坐標(biāo)來布局組件。4.12.1線性布局線性布局是將子組件按照垂直或者水平方向來布局,方向控制由“android:orientation"屬性來控制,屬性值有垂直(vertical)和水平(horizontal)兩種。另外一個常用屬性是"android:gravity",來控制左右上下對齊方式,其屬性值有上(top)、下(bottom)、左(left)、右(right)。下面的實例是將幾個TextView通過LinearLayout以不同的方向來布局。其中使用了LinearLayout外層垂直布局、內(nèi)層上面水平布局和下面垂直布局。4.12.1線性布局

<?xmlversion="1.0"encoding="utf-8"?><LinearLayout

xmlns:android="http:///apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayout

android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1">

<TextView

android:text="red"android:gravity="center_horizontal"android:background="#aa0000"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"/>

4.12.1線性布局

<TextView

android:text="green"android:gravity="center_horizontal"android:background="#00aa00"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"/>

<TextView

android:text="blue"android:gravity="center_horizontal"android:background="#0000aa"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"/><TextView

andr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論