




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
布局管理器與ActivityAndroid應用的界面編程Android基礎(chǔ)回顧View類1常見布局2簡單的UI設(shè)計案例3Activity簡介4Android的UI界面都是由View和ViewGroup及其派生類組合而成的。其中,View是所有UI組件的基類,而ViewGroup是容納這些組件的容器,其本身也是從View派生出來的。包結(jié)構(gòu)Android應用的絕大部分UI組件都放在android.widget包及其之包、android.view包及其之包中View和viewGroup派生子類一般來說,開發(fā)Android應用程序的UI界面都不會直接實用View和ViewGroup,而是使用這兩大基類的派生類。View派生出的直接子類有:AnalogClock,ImageView,KeyboardView,
ProgressBar,SurfaceView,TextView,ViewGroup,ViewStubView派生出的間接子類有:AbsListView,AbsSeekBar,
AbsSpinner,
AbsoluteLayout,
AdapterView<T
extends
Adapter>,AdapterViewAnimator,
AdapterViewFlipper,
AppWidgetHostView,
AutoCompleteTextView,Button,CalendarView,
CheckBox,
CheckedTextView,
Chronometer,
CompoundButtonViewGroup派生出的直接子類有:AbsoluteLayout,AdapterView<T
extends
Adapter>,FragmentBreadCrumbs,FrameLayout,LinearLayout,RelativeLayout,SlidingDrawerViewGroup派生出的間接子類有:AbsListView,AbsSpinner,
AdapterViewAnimator,
AdapterViewFlipper,
AppWidgetHostView,
CalendarView,
DatePicker,
DialerFilter,
ExpandableListView,
Gallery,
GestureOverlayView,GridView,HorizontalScrollView,
ImageSwitcher,ListView,TableLayout控件是Android用戶界面中的組成元素??丶母割愂荲iew。View(視圖)每個View的子類對象都是android.view.View類的一個實例。
View對象是一個數(shù)據(jù)體,它的屬性存儲了用于屏幕上一塊矩形區(qū)域的布局參數(shù)及內(nèi)容。View是所有可視化窗體控件的基類。widget包與控件關(guān)于View類的屬性View類常用的屬性所有可視控件都繼承View類屬性。屬性含義android:background設(shè)置背景android:clickable設(shè)置View是否響應單擊事件android:visible控制View的可見性android:focusable控件View是否可以獲取焦點android:id為View設(shè)置標識符,可通過findViewById方法獲取widget包與控件widget包與控件WidgetWidget是為構(gòu)建用戶交互界面提供服務的視圖對象。Widget類是View類的子類。Android的可視控件都在android.widget包內(nèi)。Widget常用的控件包括:文本控件如:TextView、EditText按鈕控件如:Button、ImageButton選擇控件如:Checkbox、RadioButton圖片顯示控件如:ImageView時鐘控件:AnalogClock、DigitalClock日期與時間選擇控件:DatePicker、TimePicker……widget包與控件控件的分類widget包與控件控件的屬性屬性名簡介取值信息android:id控件的ID,具有唯一性自定義android:layout_width控件寬度系統(tǒng)值:fill_parent填充(充滿)父容器,match_parent匹配父容器wrap_content包圍內(nèi)容自定義值:直接指定控件尺寸android:layout_height控件高度android:text顯示的文本信息引用value中字符串,或直接指定字符串值android:background設(shè)定背景圖片或顏色引用drawable中的圖片,或直接給出RGB顏色android:textColor文字顏色android:textSize文字大小android:textStyle文字風格normal、bold、italicandroid:maxLines最大行數(shù)android:gravity文字的對齊方式top、bottom、left、right等android:password文本輸入框是否是密碼true、falseandroid:selectAllOnFocus文本輸入框在獲得焦點時全選文字true、falseandroid:inputType文本輸入框的輸入內(nèi)容number、date、time等android:textAppearance文字的顯示大小?android:attr/textAppearanceLarge等系統(tǒng)值android:padding內(nèi)容距控件邊緣的填充間距android:onClick控件單擊是執(zhí)行的方法方法名android:layout_gravity控件在父容器中的對齊方式top、bottom、left、right等android:layout_margin距離其他控件的邊緣布局管理器Android布局管理器都繼承自ViewGroup類,用于存放其他控件或嵌套其他布局。常用的布局管理器有5個,分別是FrameLayout(幀布局)LinearLayout(線性布局)RelativeLayout(相對布局)TableLayout(表格布局)AbsoluteLayout(絕對布局)。新增GridLayoutFrameLayout(幀布局)是最簡單的布局方式。從屏幕的左上角開始顯示子對象。后添加的對象覆蓋前一個對象。思考這種效果如何實現(xiàn)?思考這種效果如何實現(xiàn)?是最常用的布局方式。以水平或垂直的方式排列子對象。一個方向只能有一個對象。可以嵌套:一個線性布局內(nèi)還可以定義線性布局。LinearLayout常用屬性(布局參數(shù)):andriod:orientation:設(shè)置排列方向android:layout_width:設(shè)置寬android:layout_height:設(shè)置高android:layout_weight:設(shè)置控件的重要程度。所有控件都有一個weight值,默認為零,意思是需要顯示多大的控件視圖就占據(jù)多大的屏幕空間。andriod:gravity:設(shè)置內(nèi)部元素的對齊方式等。LinearLayout(線性布局)
垂直排列填充整個屏幕寬度按控件大小填充使用注意事項:線性布局不會換行,當組件一個挨一個排列到頭后,剩下的組件將不會顯示Android:gravity組件的對齊方式Android:orientation組件的排列方式horizontalvertical實例
:實現(xiàn)如圖所示的布局文件設(shè)計TableLayout(表格布局)以多行多列的方式顯示子對象。繼承LinearLayout每一行為一個TableRow。每一行可以擁有0個或多個的單元格(cell)。每個單元格內(nèi)是一個View對象。TableLayout容器不會顯示行、列或單元格的邊框線。列的屬性Shrinkable:設(shè)置列的寬度是否可收縮,收縮指表格能夠適應其父容器的大小。Stretchable:設(shè)置列的寬度是否可拉伸,拉伸指可填滿表格中空余的空間。Collapsed:設(shè)置列是否被隱藏。RelativeLayout(相對布局)是設(shè)計UI的有力工具,通常用于比較復雜的布局。相對于其他對象的位置顯示子對象,常用于表單中。如果需要使用多個嵌套的LinearLayout布局時,可以考慮使用RelativeLayout布局。實例:實現(xiàn)如圖所示的布局文件設(shè)計
項目名:Activity_RelativeLayout控件:1個TextView,1個EditText,2個按鈕。布局文件main.xml如下:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"><TextViewandroid:id="@+id/label"android:layout_width="fill_parent"
android:layout_height="wrap_content"android:text="Typehere:"
/>
實例:實現(xiàn)如圖所示的布局文件設(shè)計//續(xù)前
<EditTextandroid:id="@+id/entry"android:layout_width="fill_parent"
android:layout_height="wrap_content"android:background="@android:drawable/editbox_background"android:layout_below="@id/label"/><Buttonandroid:id="@+id/ok"android:layout_width="wrap_content“
android:layout_height="wrap_content"android:layout_below="@id/entry"
android:layout_alignParentRight="true“
android:layout_marginLeft="10dip"android:text="OK"/><Buttonandroid:layout_width="wrap_content“
android:layout_height="wrap_content"android:layout_toLeftOf="@id/ok"android:layout_alignTop="@id/ok"android:text="Cancel"/></RelativeLayout>RelativeLayout常用屬性值為Ture或false的屬性layout_centerHorizontal:位于父對象的橫向中央。layout_centerInParent:位于父對象的中央。layout_alignParentLeft:與父對象的左側(cè)對齊。取其他對象id的屬性layout_toRightOf:位于給出id對象的右側(cè)。layout_alignTop:與給出id對象的上邊界對齊。取值為像素的屬性layout_marginBottom:當前對象的下方的留出的空白。注意:要避免循環(huán)依賴。例如已設(shè)置父對象的排列為wrap_content,子對象就不能設(shè)置為layout_alignParentBottom.widget包與控件XML文件設(shè)計
在XML文件中聲明Android應用程序界面布局和組件。優(yōu)點:短小易維護。符合MVC原則:UI與程序邏輯相分離。代碼設(shè)計
Android應用程序的界面全部由java代碼定義。優(yōu)點:方便快捷。缺點:不便維護。Android應用
界面設(shè)計√UI的編輯方式實例:完全用編程方式開發(fā)UI界面試圖開發(fā)一個完全用代碼控制UI界面的Adroid應用,由于該應用完全采用代碼來控制UI界面,因此可以完全拋棄XML布局文件。Android組件組件是可以調(diào)用的基本功能模塊,Android應用程序就是由組件組成的Android系統(tǒng)有四個重要的組件,分別是Activity、Service、BroadcaseReceiver和ContentProviderActivity的作用與功能ActivityActivity是Android程序的呈現(xiàn)層,顯示可視化的用戶界面,并接收與用戶交互所產(chǎn)生的界面事件Android應用程序可以包含一個或多個Activity,一般在程序啟動后會呈現(xiàn)一個Activity,用于提示用戶程序已經(jīng)正常啟動在界面上的表現(xiàn)形式:全屏窗體,非全屏懸浮窗體,對話框舉例來說:一個email程序,就可能包含三個activity郵件列表的activity顯示郵件內(nèi)容的activity寫新郵件或回復郵件的activityActivity生命周期組件生命周期所有Android組件都具有自己的生命周期,是從組件建立到組件銷毀的整個過程在生命周期中,組件會在可見、不可見、活動、非活動等狀態(tài)中不斷變化Activity生命周期事件函數(shù)Activity生命周期的事件回調(diào)函數(shù)函數(shù)是否
可終止說明onCreate()否Activity啟動后第一個被調(diào)用的函數(shù),常用來進行Activity的初始化,例如創(chuàng)建View、綁定數(shù)據(jù)或恢復信息等。onStart()否當Activity顯示在屏幕上時,該函數(shù)被調(diào)用。onRestart()否當Activity從停止狀態(tài)進入活動狀態(tài)前,調(diào)用該函數(shù)。onResume()否當Activity能夠與用戶交互,接受用戶輸入時,該函數(shù)被調(diào)用。此時的Activity位于Activity棧的棧頂。onPause()是當Activity進入暫停狀態(tài)時,該函數(shù)被調(diào)用。一般用來保存持久的數(shù)據(jù)或釋放占用的資源。onStop()是當Activity進入停止狀態(tài)時,該函數(shù)被調(diào)用。onDestroy()是在Activity被終止前,即進入非活動狀態(tài)前,該函數(shù)被調(diào)用。Activity生命周期事件函數(shù)Activity狀態(tài)保存/恢復的事件回調(diào)函數(shù)函數(shù)是否
可終止說明onSaveInstanceState()否Android系統(tǒng)因資源不足終止Activity前調(diào)用該函數(shù),用以保存Activity的狀態(tài)信息,供onRestoreInstanceState()或onCreate()恢復之用。onRestoreInstanceState()否恢復onSaveInstanceState()保存的Activity狀態(tài)信息,在onStart()和onResume()之間被調(diào)用。Activity生命周期分類全生命周期全生命周期是從Activity建立到銷毀的全部過程,始于onCreate(),結(jié)束于onDestroy()使用者通常在onCreate()中初始化Activity所能使用的全局資源和狀態(tài),并在onDestroy()中釋放這些資源在一些極端的情況下,Android系統(tǒng)會不調(diào)用onDestroy()函數(shù),而直接終止進程Activity生命周期實例全生命周期啟動和關(guān)閉ActivityLifeCycle的LogCat輸出啟動ActivityLifeCycle按下模擬器的“返回鍵”關(guān)閉ActivityLifeCycleLogCat輸出結(jié)果Activity生命周期分類可視生命周期可視生命周期是Activity在界面上從可見到不可見的過程,開始于onStart(),結(jié)束于onStop()Activity生命周期分類可視生命周期onStart()一般用來初始化或啟動與更新界面相關(guān)的資源onStop()一般用來暫?;蛲V挂磺信c更新用戶界面相關(guān)的線程、計時器和服務onRestart()函數(shù)在onSart()前被調(diào)用,用來在Activity從不可見變?yōu)榭梢姷倪^程中,進行一些特定的處理過程onStart()和onStop()會被多次調(diào)用onStart()和onStop()也經(jīng)常被用來注冊和注銷BroadcastReceiverActivity生命周期實例可視生命周期狀態(tài)轉(zhuǎn)換啟動ActivityLifeCycle按“呼出/接聽鍵”啟動內(nèi)置的撥號程序再通過“返回鍵”退出撥號程序ActivityLifeCycle重新顯示在屏幕中可視生命周期的LogCat輸出結(jié)果Activity生命周期分類活動生命周期活動生命周期是Activity在屏幕的最上層,并能夠與用戶交互的階段,開始于onResume(),結(jié)束于onPause()在Activity的狀態(tài)變換過程中onResume()和onPause()經(jīng)常被調(diào)用,因此這兩個函數(shù)中應使用更為簡單、高效的代碼Activity生命周期分類活動生命周期onPause()是第一個被標識為“可終止”的函數(shù)在onPause()返回后,onStop()和onDestroy()隨時能被Android系統(tǒng)終止onPause()常用來保存持久數(shù)據(jù),如界面上的用戶的輸入信息等Activity生命周期分類onPause()和onSaveInstanceState()的區(qū)別這兩個函數(shù)都可以用來保存界面的用戶輸入數(shù)據(jù),他們的區(qū)別在于onPause()一般用于保存持久性數(shù)據(jù),并將數(shù)據(jù)保存在存儲設(shè)備上的文件系統(tǒng)或數(shù)據(jù)庫系統(tǒng)中的onSaveInstanceState()主要用來保存動態(tài)的狀態(tài)信息,信息一般保存在Bundle中Bundle是能夠保存多種格式數(shù)據(jù)的對象在onSaveInstanceState()保存在Bundle中的數(shù)據(jù),系統(tǒng)在調(diào)用onRestoreInstanceState()和onCreate()時,會同樣利用Bundle將數(shù)據(jù)傳遞給函數(shù)A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高中班主任個人工作方案
- 2025年大班幼師個人工作方案演講稿
- ECR共同體 2025年全球趨勢白皮書
- 《PHP開發(fā)技術(shù)》考試題(2)及答案
- PHP程序設(shè)計項目化教程電子教案14 問卷統(tǒng)計器-文件和目錄操作
- 2025年球節(jié)點金屬網(wǎng)架螺栓項目可行性研究報告
- 2025年玻璃鋼采光瓦設(shè)備項目可行性研究報告
- 2025年特優(yōu)大米項目可行性研究報告
- 2025年煮練聯(lián)合機項目可行性研究報告
- 徐州幼兒師范高等專科學?!顿Y產(chǎn)評估B》2023-2024學年第二學期期末試卷
- 2025購銷商品合同模板
- kmeans聚類算法原理試題及答案
- 2024年山西華陽新材料科技集團有限公司招聘筆試真題
- 2025年03月雙鴨山市“市委書記進校園”引才活動黑龍江能源職業(yè)學院13人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年湖南興湘投資控股集團有限公司春季校園招聘28人筆試參考題庫附帶答案詳解
- 隧道二襯臺車安裝拆除施工方案
- 農(nóng)業(yè)機械設(shè)備使用與操作指南
- 2025年03月州省氣象部門第二批公開招聘應屆高校畢業(yè)生34人(第6號)筆試歷年參考題庫考點剖析附解題思路及答案詳解
- 南通市如東縣事業(yè)單位招聘真題2024
- 圖書管理員的崗位技能要求與試題及答案
- 自體輸血管理制度與技術(shù)規(guī)范
評論
0/150
提交評論