Android-Studio移動應用開發基礎課件_第1頁
Android-Studio移動應用開發基礎課件_第2頁
Android-Studio移動應用開發基礎課件_第3頁
Android-Studio移動應用開發基礎課件_第4頁
Android-Studio移動應用開發基礎課件_第5頁
已閱讀5頁,還剩138頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Android Studio移動應用開發基礎第1章 Android概述1.1 Android是什么?1.2 Android應用程序的組成1.3 Android的發展歷史1.4 Android應用開發環境概述1.1 Android是什么?Android是一個平臺,它包括:基礎系統、開發工具和完整的文檔;Android平臺是一個通用的計算平臺,它采用Linux為其支撐操作系統,以Java作為其開發環境,實現了完整的電話、視頻、網絡、界面設計等基礎功能;Android平臺的體系結構如圖所示;不管Android的層次怎樣復雜,你只要掌握Java語言,就可以在Android平臺上開發自己的APP!1.2

2、 Android應用程序的組成任何一個應用程序都會包括如下一些基本的內容:應用程序的界面、業務功能的處理、部件之間的數據交互、數據存儲,如此而已,Android應用程序也不例外,只是被賦予了不同的名稱;Activity:一個界面就是一個Activity;View:組件;Intent:Android應用程序界面之間及功能部件之間實現信息交互的橋梁;Content Provider:內容提供者;Service:運行于后臺的程序;廣播接收器:廣播接收器;AndroidManifest.xml:Android應用程序的配置文件。1.3 Android的發展歷史1.4 Android應用開發環境概述An

3、droid平臺采用Java語言作為應用程序開發語言;Android開發環境包括如下基本內容:Java基本包、Android基礎組件、Android UI組件、Android服務組件、Android電話和媒體服務組件、Android仿真器(AVD,Android Virtual Device)、Android調試器等;還有眾多的第三方功能包。第2章 建立Android應用開發環境2.1 下載和安裝Android Studio2.2 開發第一個Android應用程序2.2.1 創建Hello World程序工程2.2.2 運行Hello World程序2.3 本章同步練習一2.4 Android應

4、用程序的結構2.1 下載和安裝Android Studio在下載和安裝Android Studio之前,你需要下載和安裝Java SDK;從Android的開發網站下載Android Studio;運行下載得到的文件即可安裝Android Studio開發環境;2.2 開發第一個Android應用程序啟動Android Studio啟動完畢,點擊第一個功能選項“Start a new Android Studio project”即可創建一個新的Android應用程序工程;在“Application name”中,輸入你的應用程序的名字,在“Company domain”中輸入你的公司的域名(

5、可以是假想的域名),在“Project location”中輸入應用程序文件存放的位置,之后點擊“Next”按鈕;選擇應用程序運行的目標機,目前我們直接點擊“Next”即可;選擇“Blank Activity”,點擊“Next”按鈕;點擊“Finish”按鈕, Android Studio將創建一個新的Android App工程,Android Studio需要一些時間來創建工程文件;Android Studio已經成功創建了名稱為“First”的Android APP工程!為了測試你的Android應用程序,你可以直接在你的Android真機上測試,也可以在Android SDK自帶的模擬器

6、上測試。我們首先在Android模擬器上測試;為了配置一個Android模擬器,在Android Studio開發環境中的工具欄點擊“AVD manager”按鈕;在顯示的界面點擊“Create Virtual Device”按鈕;選擇“Phone”及“3.7 FWVGA slider”,然后點擊“Next”按鈕;界面中選擇“Other Images”和“Jelly Bean”的Android影像;點擊“Next”,點擊“Finish”即完成了模擬器的配置;為了能夠在模擬器上運行你的程序,你需要啟動之:在界面中點擊三角形按鈕,即可啟動剛才所配置的模擬器;你可以測試你的“Hello World”

7、程序了。為此,在Android Studio界面啟動應用程序按鈕;第一個Hello World程序正常運行!2.3 本章同步練習一建立你的Android開發環境,然后編寫你的第一個Hello Android程序,運行之,并觀察程序的結構。同時,熟悉Android Studio開發環境的各個功能的使用;2.4 Android應用程序的結構manifests目錄下的AndroidManife.xml文件;java目錄;res目錄;第3章 剖析Android應用程序3.1 AndroidManifest.xml3.2 MainActivity.javaActivity介紹3.3 Android程序資

8、源3.4 本章同步練習一3.1 AndroidManifest.xmlAndroidManifest.xml文件非常重要的配置文件,在Android應用運行時,Android平臺將首先讀取這個文件并進行分析,然后再啟動特定的Activity來運行;xml;manifest;package;application;activity;intent-filter;3.2 MainActivity.javaActivity介紹在啟動Android應用程序時,Android平臺將首先讀取AndroidManifest.xml文件,從中獲得入口Activity的相關信息,并啟動入口Activity運行;在

9、Android Studio開發環境中查看MainActivity.java文件;當Android平臺啟動MainActivity運行時,它將首先調用它的onCreate( )方法,注意,Android要求,你必須首先調用父類的onCreate( )方法,然后,你可以做一些自己的初始化工作;調用setContentView(R.layout.activity_main)來顯示Activity的主界面;對于MainActivity.java中的其他方法你現在可以完全不用理會;在Android Studio中打開activity_main.xml文件并查看代碼;采用CoordinatorLayou

10、t布局管理器對組件的布局進行管理;android:layout_width=“match_parent”;android:layout_height=“match_parent”;包含一個稱為AppBarLayout的可視組件;在這個AppBarLayout組件的下面,顯示另一個布局文件的內容;語句:setContentView(R.layout.main)的作用就是:將資源R.layout.activity_main所指定的界面顯示在MainActivity的主窗口中;在Android應用程序中,可以直接使用字符串常量在需要的任何地方,就像我們在TextView組件中使用的那樣。但是,And

11、roid不建議這么做,Android建議:將字符串常量放置到res/values/stirngs.xml資源文件中進行集中管理;Android應用程序 = Java程序代碼文件 + 資源文件 + AndroidManifest.xml3.3 Android程序資源Android程序資源在Android應用程序中起著十分重要的作用:Android程序資源或者是一個文件,例如布局資源,或者是一個值,例如字符串常量定;將應用程序的資源與應用程序代碼分離的好處是:你可以直接改變資源的值,而不用修改或編譯應用程序代碼本身!在Android應用程序中,會用到各種各樣的資源,包括:字符串資源、圖片資源、界面

12、布局資源、動畫資源等,下面對常用的資源類型的定義和使用進行簡單的介紹。字符串資源:Android建議,將字符串常量統一定義到一個或多個xml資源文件中;用于定義字符串常量的xml文件必須放置到res/values工程目錄下,而文件名則可以根據需要自行定義;在Java程序代碼中,使用:R.string.app_name訪問到由app_name定義的字符串;而在資源配置xml文件中,則使用:string/app_name來訪問由app_name定義的字符串;布局資源:通過XML方式來構建程序界面的文件稱為布局資源文件,或稱為layout resource;Android規定,所有的布局資源文件必須

13、放置在res/layout工程目錄下;使用語句:setContentView(R.layout.activity_main);來顯示界面布局;ID資源:就像我們給字符串資源、布局資源一個唯一的標示符一樣,我們也可以給布局資源中的各個組件分配一個唯一的ID。在給布局資源中的組件分配一個唯一的ID后,我們就可以在程序代碼中引用這些組件;TextView tv = (TextView)this.findViewById(R.id.tv02);tv.setText(歡迎進入Android開發陣營);圖片資源:為了程序的可用性和美觀性,在程序中一般我們都會用到圖片來裝飾界面;Android將圖片也定義為

14、資源,它將每個圖片資源作為文件放置在res/ mipmap(或者res/drawable)工程目錄下;對于圖片資源文件,可以使任何目前支持的圖片文件,包括:.jpg文件、.png文件、.bmp文件;可以在需要使用圖片的任何地方使用圖片資源;3.4 本章同步練習一編寫一個Android應用程序,并可以顯示一張你自己認為漂亮的圖片,并以文本的形式介紹圖片的內容;從Android的幫助文檔中找出Android平臺定義所有的圖片資源,并在你的程序中顯示其中任意一張圖片第4章 深入分析Activity4.1 Activity的生命周期4.2 Activity生命周期示例4.3 使用Log類輸出程序調試信

15、息4.4 Android常見Activity4.4 本章同步練習一4.1 Activity的生命周期Activity是Android的重要組成部分,它代表的是Android應用程序的界面;如果你打開我們之前的編寫的例子Hello World這個Android程序的MainActivity.java這個Activity代碼,你會發現其中并沒有main( )函數;需要我們理解程序生命周期的概念;Android應用程序的Activity界面,它也是有生命周期的;當Android系統要啟動一個應用程序的Activity時,例如,某個Android應用程序的入口Activity時,它將首先調用該Acti

16、vity的onCreate( )方法,之后調用該Activity的onStart( )方法,再之后調用Activity的onResume( )方法,在調用了onResume( )方法之后,該Activity已經所表示的界面顯示在屏幕上了,此時,用戶可以與該Activity進行交互。4.2 Activity生命周期示例修改MainActivity.java程序來觀察一下Activity生命周期的變遷;為了觀察程序顯示的信息,打開Android Studio的Android Monitor視圖:點擊Android Studio右下方標簽:4.3 使用Log類輸出程序調試信息Android建議的方法

17、使用android.util.Log類的方法來顯示信息;4.4 Android常見Activity4.4 本章同步練習一編寫一個簡單的程序,將Activity生命周期方法的調用過程寫入到一個文件中,以便你能夠更加方便查看Activity的生命周期過程。第5章 Android常用UI組件5.1 使用基于XML的布局5.2 Android基本組件5.3 Android容器組件5.4 本章同步練習二5.5 AdapterView5.6 Android其他常用組件5.7 本章同步練習三5.1 使用基于XML的布局Android建議采用將程序界面與程序業務邏輯分離的方式來進行程序設計;Android的使

18、用XML來布局界面;當點擊按鈕時,在按鈕上顯示當前的日期時間;如何來響應對按鈕的點擊呢?通過實現View.OnClickListener來達到這個目的;在這個接口中,只有一個方法:onClick(View v),它表示當指定的組件被點擊時的具體響應;5.2 Android基本組件Android基本組件包括:Button、TextView、ImageView、EditText、CheckBox、RadioButton;Button組件的常用布局屬性包括:android:text、android:textColor、android:textSize、android:textStyle、androi

19、d:typeface、android:id、android:background、android:clickable、android:visibility、android:padding、android:paddingTop、android:paddingBottom、android:paddingLeft、android:paddingRight、android:gravity等;TextView組建:TextView類似其他GUI的Label,用于顯示一個字符串,顯示在TextView中的字符串是不可編輯的;ImageView組件:ImageView組件用于顯示一幅圖片;ImageView

20、常用XML配置屬性包括:android:maxHeight、android:maxWidth、android:scaleType、android:src、android:contentDescription;EditText組件:EditText是可編輯的文本組件,與TextView組件類似,只是提供了編輯功能,它的XML配置屬性都是從TextView及View中繼承來的,如下的幾個XML配置屬性可能有用:android:autoText、android:captalize、android:digits、android:singleLine、android:hint、android:input

21、Type;CheckBox組件:CheckBox組件就是在其他GUI組件我們常用的“復選框”,它繼承了TextView和View組件的XML屬性。該組件的常用方法:isChecked( )、setChecked(Boolean checked)、toggle( );RadioButton組件:RadioButton就是我們在其他GUI中使用單選按鈕。一般情況下,我們總是將RadioButton與RadioGroup結合使用:使得在一組RadioButton中只有一個可以被選中;通過RadioGroup我們控制RadioButton的選中狀態。常用的RadioGroup的方法:check(int

22、 rb)、clearCheck( )、getCheckedRadioButtonId( )本章同步練習一編寫一個簡單的Android程序,程序主界面上顯示一個按鈕,點擊這個按鈕,在這個按鈕上一適合中國人閱讀習慣的方式顯示日期和時間。例如,顯示日期時間的格式應該是:2015年-05月-05日 10:30:17。5.3 Android容器組件Android容器組件,也就是在其中放置其他組件并可以對放置在其中的組件進行布局的Android組件。常用的Android容器組件包括:LinearLayout、RelativeLayout、FrameLayout、ScrollView;LinearLayou

23、t是線性布局組件,放置在其中的組件要么按列、要么按行的方式進行順序布局,LinearLayout的常用XML配置屬性:android:orientation、android:gravity、其他從View中繼承來的屬性,包括android:backgroud、android:visibility;對于布局在LinearLayout中的組件,LinearLayout也提供如下這些XML配置屬性,用以告知LinearLayout如何放置這些組件:android:layout_width、android:layout_height、android:layout_gravity、android:lay

24、out_weight、android:layout_margin、android:layout_marginTop、android:layout_marginBottom、android:layout_marginLeft、android:layout_marginRightRelativeLayout,顧名思義,就是相對布局:一個組件相對于另一個組件的位置來布局組件。例如,將組件A布局在組件B的右下方。RelativeLayout為布局在其中的組件提供了非常多的布局屬性:FrameLayout以層疊的方式的布局組件:每次只能顯示其中一個。這有點類似撲克牌,你只能看到最上面的那張。FrameL

25、ayout為布局在其中的組件提供了一個XML配置屬性:android:layout_gravity,通過這個屬性,布局在FrameLayout中的組件可以指定自己在容器中的重心位置;ScrollView也是一個容器,它是FrameLayout的子類,它的主要作用是可以包括多于屏幕可以顯示的內容,ScrollView將提供垂直滾動,進而可將超出物理屏幕的內容顯示出來。一般情況下,可以將一個采用垂直方式布局組件的LinearLayout作為ScrollLayout容器的子組件,同時,在LinearLayout容器中可以顯示多于屏幕物理高度的內容。5.4 本章同步練習二編寫一個簡單的計算器程序,只需

26、完成基本的加、減、乘、除運算即可。要求:界面布局美觀、絢麗。可作為課后作業;5.5 AdapterView在Android應用開發中,AdapterView是一類非常重要的和常用的組件。我們常見的以列表的形式顯示信息的組件就是AdapterView的子類,稱為ListView,還有我們經常以網格形式瀏覽照片縮略圖的組件也是AdapterView類的子類,稱為GridView,還有以下拉列表形式顯示可選項的組件也是AdapterView類的子類,稱為Spinner等等,它們都是AdapterView的子類;在程序中要使用ListView顯示信息,你必須做如下的工作:(1)在你的界面布局中包含一個

27、ListView組件;(2)對在列表中顯示的列表項進行布局;(3)設計及一個實現了Adapter接口的類,用于為ListView組件提供要顯示的數據。AdapterAdapterView是如何與Adapter交互來完成信息顯示功能的呢?AdapterView顯示數據的處理邏輯如下:(1)當AdapterView要顯示一項數據時,例如,對于ListView而言,就是當ListView要顯示一行數據時,它首先會調用Adapter的getView()方法,并傳遞一個要顯示的數據的位置參數;(2)Adapter根據這個位置參數從Data中獲得指定的數據,并根據R.layout.childView的布局

28、樣式將數據填入到樣式布局中,然后,將這個構建好的View返回給AdapterView;(3)AdapterView將這個返回的View作為子View顯示在控件中。Adapter接口定義的方法及其含義ListView:ListView以垂直的方式顯示數據列表,并且,當要顯示的數據多于屏幕高度時,可以以垂直滾動的方式顯示其余數據;可以通過布局列表項來美化ListView的顯示效果;ListView可以監聽OnItemClickListener事件,從而實現對列表項點擊事件的處理;Spinner就是我們熟悉的下拉列表框。與ListView類似,你也必須為Spinner對象指定一個Adapter;通過

29、布局下拉列表項,可以使下拉列表更為美觀;GridView以二維表格的方式顯示數據,若數據比較多,該組件將提供垂直滾動條;5.6 Android其他常用組件5.7 本章同步練習三自我學習:編寫一個程序,可以使用WebView組件瀏覽網頁。關于WebView組件的使用方法可以參考Android的幫助文檔。第6章 樣式和主題6.1 樣式入門6.2 定義樣式6.3 應用樣式6.4 使用Android平臺已定義的樣式和主題6.5 Android應用程序的主題樣式結構分析6.6 本章同步練習一在進行程序的界面設計時,我們經常需要對界面及界面上的組件設置統一的顯示外觀,例如,界面的背景顏色、使用的字體大小、

30、字體顏色、組件的顯示大小、內填充、外填充、是否顯示標題欄等等,你仍然可以為每個組件設置自己的顯示屬性,但是,為了便于對外觀的統一管理,我們需要將這些外觀設置集中起來。Android是通過樣式,也就是Style來完成這個工作的。要在Android中使用樣式來定制外觀,需要做兩個方面的工作:定義樣式;將定義好的樣式應用到界面中。6.1 樣式入門在res/values工程目錄下創建一個樣式xml文件,并在其中定義樣式;樣式定義的例子:可將定義好的樣式應用到組件、Activity乃至Application中:6.2 定義樣式為了定義一個樣式,你需要在res/values工程目錄下新建一個XML文件,當

31、然,你也可以在現有的某個文件;定義樣式的一般格式如下:在樣式定義中parent=“父樣式名稱”,這意味著樣式定義是支持繼承的,也就是我們常說的級聯樣式,同時,樣式定義中的parent屬性是可選的;可以在Java程序中使用“R.style.定義樣式名稱”來訪問所定義的樣式,也可以在XML文件中使用“style/自定義樣式名稱”來訪問;6.3 應用樣式一旦我們完成樣式定義后,我們就可以將定義好的樣式應用到需要的地方:可以將樣式應用到某個組件,也可以將樣式應用某個Activity或整個Application;將定義好的樣式應用到某個組件是一件非常簡單的工作:在組件的配置中,添加“style”XML配

32、置屬性即可;將樣式應用到某個Activity或整個Application:6.4 使用Android平臺已定義的樣式和主題Android平臺已經定義了一系列的風格和主題供應用程序使用,在所有定義的樣式中,以Theme開頭的樣式是主題樣式,其他的不是以Theme開頭的則是普通樣式;Android完整的樣式定義可參考android.R.style類;要使用Android已定義的樣式或主題,需要將樣式或主題名中的下劃線“_”替換為小數點“.”;6.5 Android應用程序的主題樣式結構分析當你在Android Studio中新建一個Android工程時,Android已經為你制定了默認的主題;6.

33、6 本章同步練習一Android平臺中預定義了很多主題樣式,請將表6-1所示的主題樣式應用到你的一個例子程序中,觀察一下每個主題樣式的外觀。第7章 理解和使用Intent7.1 Intent應用入門7.2 細說Intent7.3 Intent解析7.4 獲得Activity返回的結果7.5 Intent的綜合應用舉例7.6 本章同步練習二7.7 廣播消息和廣播接收器7.8 本章同步練習三在基于HTML的頁面程序中,我們使用“超鏈接”來實現頁面之間的跳轉。之前我們也提到過,Android應用程序界面是由一個到多個Activity組成的,一個Activity相當于HTML的一個頁面,那么,當一個A

34、ndroid應用程序具有多個有相互聯系的Activity時,它們之間如何實現跳轉呢?這就是通過使用我們在這里將要介紹的Intent來實現的;Intent的作用還不止于實現Activity之間的跳轉,它還是Android平臺的各個部分之間實現信息溝通的橋梁。7.1 Intent應用入門通過一個簡單的例子來說明什么是Intent及Intent的基本應用;這個例子程序的目標是這樣的:該程序首先顯示一個Activity,在這個Activity上使用一個TextView顯示一個圖片的名字及一個Button按鈕,點擊這個Button,則在一個新的Activity中顯示一張圖片。本章同步練習一編寫與例子相似

35、的、能通過Intent打開新的Activity的程序。例如,你可以通過點擊一張圖片來顯示一個文本框,用來介紹該圖片的一些基本情況。7.2 細說IntentAndroid的Intent對象是聯系各個Activity的關鍵對象。Intent,翻譯成中文就是“意圖”,我們可以這樣來理解Intent:通過Intent對象,我們告訴Android我們要做什么;顯式Intent:在Intent中,我們明確的告訴Android我們要啟動的Activity;還有一種Intent叫做隱式Intent:在Intent指定一些條件,由Android系統根據這些條件來啟動最能滿足條件的Activity;Intent與

36、Intent-FilterIntent的action:可以為我們自己創建的Activity定義一個用于打開這個Activity的action,這個action是一個字符串常量,你可以任意定義,但是,Android建議的做法是,在命名action時,采用“Java包名+特定串”的形式來命名action;在Intent類中已經預定義了一些常用的action;為了指明一個Intent的action,有兩種方式:(1)通過Intent類的構造函數new Intent(String action)及new Intent(String action, URI uri)。(2)通過Intent類的setAc

37、tion(String action)函數;同時,為了指明一個Activity可以被哪個或哪些action打開,需要在AndroidManifest.xml文件中,使用標簽來說明;Intent的data:在通過隱式Intent打開Activity時,除了指明Activity的action外,我們經常還指明Activity所支持的data;通過Intent的data指明要操作的數據,Android的data也是通過URI來指明的;為了指明某個Activity的data屬性,需要在AndroidManifest.xml文件中,在Activity的配置的子標簽中通過data標簽指定;Intent的c

38、ategory:是Android對Activity進行分類的一種手段;Android已經在Intent類中定義了一些category常量,常用的category包括:Intent.CATEGORY_DEFAULT、Intent.CATEGORY_LAUNCHER、Intent.CATEGORY_INFO、Intent.CATEGORY_HOME、Intent.CATEGORY_PREFERENCE、Intent.CATEGORY_CAR_ DOCK、Intent.CATEGORY_CAR_MODE、Intent.CATEGORY_APP_MARKET等;Intent的extra:extra只作

39、為傳遞給目標Activity的附加數據,不作為挑選Activity的匹配依據;extra是key/value形式的數據,其中的key是String類型的“鍵”,而value可以是Java基本數據類型或實現了android.os.Parcelable接口的對象數據類型;7.3 Intent解析Intent對象與是密切相關的:在通過Intent對象來啟動某個Activity時,必須對Intent對象中所設定的屬性,包括,action、data和category與中所配置的屬性進行匹配,從而打開能夠匹配的Activity;7.4 獲得Activity返回的結果為了獲得被打開Activity返回的結果

40、,應該使用startActivityForResult()方法;通過startActivityForResult( )啟動的Activity時,當被啟動的Activity執行完畢時,Android平臺將調用源Activity的onActivityResult( )方法;public void startActivityForResult(Intent intent, int requestCode);protected void onActivityResult(int requestCode, int resultCode, Intent data);7.5 Intent的綜合應用舉例7.6

41、 本章同步練習二繼續7.5中所介紹的例子,完善這個例子,要求:(1)將顯示在按鈕右邊的字體調大些,以便與左邊的按鈕大小匹配;(2)編寫你自己的一個Activity,作為7.5的界面中的一項功能能夠啟動它運行,同時,該Activity將返回一些數據給主Activity。主Activity能夠顯示返回的信息。7.7 廣播消息和廣播接收器Android提供了兩種可廣播消息,即普通消息和有序消息;使用sendBroadcast(Intent intent)和sendBroadcast(Intent intent, String receiverPermission)方法來發送普通廣播消息;要接收sen

42、dBroadcast發送的消息,接收者必須繼承BroadcastReceiver類,且需要實現其中的onRecive(Content context, Intent intent)方法;需要在AndroidManifest.xml文件中注冊該消息接收器(稱這種注冊方式為靜態注冊);或者在Java代碼中注冊消息接受者(稱這種注冊為動態注冊);接收Android平臺的廣播消息7.8 本章同步練習三編寫一個消息接收器程序,該程序既可以接收你自己的程序發送的普通廣播消息,也可以接收Android平臺的發送的Intent.ACTION_POWER_CONNECTED消息。并設計界面測試你的程序。第8章

43、菜單和Toolbar8.1 菜單8.2 ActionBar和Toolbar8.3 本章同步練習一菜單是一種常見的應用程序操作模式,在早期的Android設備上,提供了專門用于開啟菜單的功能按鈕,但是,從Android 3.0開始,Android已經不再要求設備制造商提供這個功能按鈕,而代之以稱為ActionBar或Toolbar的應用程序組件,這個組件在運行時出現在應用程序的最上方。雖然如此,ActionBar及Toolbar組件的構造仍是基本Android的菜單Menu組件進行的。8.1 菜單通過Android Studio構建的基本程序的界面中,會顯示一個菜單彈出按鈕;在res/menu下

44、定義XML菜單文件;通過onCreateOptionsMenu這個方法顯示菜單;8.2 ActionBar和Toolbar其中框住的部分稱為ActionBar或Toolbar。Android建議使用Toolbar組件來作為菜單及程序標題的組件;Toolbar組件是ViewGroup的子類,這說明,在Toolbar中你可以嵌套任何Android的其他組件;8.3 本章同步練習一探究練習:Toolbar可以作為獨立使用。現在構建一個簡單的Toolbar練習程序,在Toolbar中顯示兩個按鈕用于切換在界面上顯示不同的圖片:“上一個”按鈕顯示上一張圖片,“下一張”按鈕顯示下一張圖片,同時,在菜單上也

45、實現了同樣的功能,并將菜單顯示在Toolbar上。第9章 動畫9.1 View動畫之補間動畫基礎9.2 本章同步練習一9.3 View動畫之幀動畫Android支持兩種種類型的動畫:屬性動畫和View動畫。View動畫又分為補間動畫(Tween動畫)和幀動畫(Frame動畫或AnimationDrawable動畫)。動畫的基本原理就是將組件的某個屬性或整個組件的顯示狀態在一個特定的時間內從一個值或狀態變化到一個新的值或狀態;9.1 View動畫之補間動畫基礎補間動畫供包括4中動畫形式:旋轉動畫、縮放動畫、透明度動畫和移位動畫,標簽分別為rotate、scale、alpha和translate;

46、定義的補間動畫的文件必須放置在res/anim工程目錄下,文件名稱可以是任何合法的名稱;在程序中引用動畫資源時,采用R.anim.filename的方式來引用,在XML文件中采用package:anim/filename的方式來引用動畫資源;定義rotate動畫定義scale動畫定義alpha透明度動畫定義translate移位動畫定義復合set動畫使用動畫監聽器可以使用動畫Animation.AnimationListener監聽器接口來監聽動畫執行的各個階段9.2 本章同步練習一編寫一個簡單的動畫程序,這個程序在程序啟動時首先執行一個開啟動畫,在動畫執行完成后再顯示應用程序的主界面。例如,

47、你可以在啟動程序時在一個ImageView上執行一個動畫,在動畫執行完畢時顯示程序主界面;9.3 View動畫之幀動畫幀動畫就是按一定的時間順序的顯示一組預定義的圖片;采用XML定義幀動畫時,需要將定義文件放置在res/drawable工程目下;在XML或在Java程序中應用幀動畫資源的與引用一般圖片資源的形式是一樣的,你可以在任何可以使用drawable資源的地方使用幀動畫資源;第10章 多媒體播放10.1 使用MediaPlayer播放音頻10.2 本章同步練習一10.3 播放視頻10.4 本章同步練習二Android的多媒體框架提供了播放音頻、視頻及圖像的相關手段。通過該框架,你可以處理

48、來自資源文件、手機本地存儲系統、甚至來自于網絡的多媒體內容。Android的多媒體框架中最重要和常用的類無疑就是MediaPlayer,通過MediaPlayer對象,程序可以獲取、解碼和播放包括音頻和視頻在內的多媒體資源;所播放的媒體內容可以來自程序資源(放置在res/raw目錄下,因為Android不會對放置這個目錄下的資源進行任何處理,所以,放置在這個目錄下的文件將保持原樣)、來自本地文件或來自網絡等。10.1 使用MediaPlayer播放音頻為播放簡短的音頻,MediaPlayer提供了幾個靜態的create方法用于創建MediaPlayer對象;create(Context con

49、text, int resId)用于播放存放在res/raw資源目錄下的音頻資源,而create(Context context, Uri uri)可以播放來自任何Uri的音頻。對于需要播放簡短的音效音頻,我們建議將音頻文件存放在資源目錄中,也就是在res/raw目錄下;10.2 本章同步練習一將10.1.2的例子加載到你的開發環境中,運行之,并做如下修正:(1)使界面更加美觀;(2)在列表中只顯示能夠播放的音頻文件和子目錄。(3)按下手機上的返回鍵顯示當前目錄的上一級目錄的內容。10.3 播放視頻使用MediaPlayer來播放視頻,當然要播放視頻需要需要創建一個用于顯示視頻的Surface

50、;我們不準備介紹Surface,而是使用Android的便利組件VideoView來播放視頻;看一個劇吐的例子;10.4 本章同步練習二修改10.2同步練習一的程序,使之既可以播放音頻也可以播放視頻。提示:判斷文件為視頻后,在一個新的Activity中使用VideoView播放視頻;第11章 保存程序數據11.1 使用SharedPreferences保存程序數據11.2 本章同步練習一11.3 設置程序首選項11.4 本章同步練習二11.5 在程序目錄下存儲程序數據11.6 本章同步練習三11.7 訪問外部存儲器11.1 使用SharedPreferences保存程序數據SharedPref

51、erences提供了一個基本框架;通過使用SharedPreferences,你可以非常方便地將程序運行數據保存下來;為了得到一個SharedPreferences對象,你只需在Activity中,調用getSharedPreferences(String name, int mode)或getPreferences(int mode)函數;其中的name參數是你指定的用于保存數據的文件的文件名,mode參數設為0即可;看一個具體的例子;11.2 本章同步練習一完善11.1節的例子,做如下修改:當用戶點擊“登錄”按鈕時,不僅在SharedPreferences保存用戶輸入的用戶名和密碼,同時還

52、保存用戶登錄的日期時間。當用戶下次再次運行程序,不僅將上次輸入的用戶名和密碼自動填入到相應輸入框中,還通過一個Toast顯示上次登錄的日期時間。完成程序后,運行程序,并使用DDMS視圖,觀察應用程序的安裝目錄下文件的變化和文件結構。11.3 設置程序首選項Android應用程序通常會包括一些設置以便用戶可以改變程序的運行特征;為了使你的Android應用程序與Android自帶的“系統設置”應用有一致的外觀,Android提供了一個稱為Preference的API;常用的Preference的組件包括: (1)CheckBoxPreference 顯示一個復選框用于設置某個特性是否使能或不使能

53、; (2)ListPreference 顯示一個列表框,并在列表框中顯示一組單選按鈕,用于選擇某個特征; (3)EditTextPreference 顯示一個輸入框,用于輸入某個值;看一個具體的例子;11.4 本章同步練習二將11.3節中的例子復制到你的開發環境中并運行之,觀察程序的運行效果,并做如下修改:在首選項界面中,添加一項新的選項設置,用于設置動畫的執行時間。提示:在獲得動畫對象后,使用setDuration函數來設置動畫執行的時間;同時,對于動畫執行時間這個選項,只有在執行動畫時才有效,因此,你還需要使用android:dependency首選項屬性來配置這個首選項的依賴。11.5

54、在程序目錄下存儲程序數據任何一個Android應用程序,在被安裝到Android系統中時,系統都將在/data/data目錄下,以這個應用程序的包名為名稱為這個應用程序創建一個唯一的子目錄,你可以在這個子目錄下創建只有你的程序才可以訪問的子目錄或文件;Activity提供了如下的用于操作應用程序私有目錄的方法;File Activity.getFilesDir( );File getDir(String name,int mode);boolean deleteFile(String name);String fileList( );FileOutputStream openFileOutpu

55、t(String name, int mode);FileInputStream openFileInput(String name);11.6 本章同步練習三編寫一個簡單的Android應用程序,觀察11.5節中所介紹的各個文件訪問方法的功能。提示:你可以簡單的輸出相關信息即可。11.7 訪問外部存儲器對于配備了外部SD卡的Android設備,可以使用Android提供的一個工具類Environment來檢查外部SD卡的狀態及獲得SD卡上特定子目錄;使用Environment的getExternalStorageState( )函數獲得SD卡的狀態;使用Environment的getExte

56、rnalStoragePublicDirectory(String type)方法可以獲得SD卡上特定子目錄的File對象;11.8 使用SQLite數據庫保存程序數據SQLite是一個開源的、免費的數據庫管理系統。與一般的基于C/S模式的數據庫管理系統不同,例如Microsoft SQL Server,MySQL,這些基于C/S模式的數據庫管理系統,數據庫存儲在稱為服務器的計算機系統上,并通過數據庫管理系統的服務器端程序來管理,需要使用數據庫數據的程序,稱為客戶端程序,通過某種通信協議,例如TCP/IP與數據庫管理系統的服務器端程序進行通信來進行數據庫數據的操作。SQLite則全然不同,它不

57、是基于C/S模式的,它只是一個C語言程序包(C函數庫),需要使用SQLite數據庫的程序只需調用這個程序包中的函數即可創建數據庫、訪問數據庫中的數據等;在Android系統中,Android整合了SQLite數據庫管理系統,將SQLite的C語言程序包進行了Java封裝,提供了基于Java語言的類庫;SQLite數據類型:(1)TEXT 字符串類型;(2)NUMBERIC 精確表示的數值類型;(3)INTEGER 整數類型;(4)REAL類型 采用8字節表示的IEEE浮點數據類型,與NUMBERIC不同,這個數據類型可能會有數據精度損失;(5)BLOB類型 二進制數據類型在Android中使用

58、SQLite數據庫;看一個例子我們要創建的數據庫名稱為“Teach.db”,其中包含三張表:student表、course表和score表,其中分別存放學生的基本信息、課程的基本信息和學生成績的基本信息;第12章 使用后臺任務12.1 使用Java線程執行后臺任務12.2 本章同步練習一12.3 使用AsyncTask執行后臺任務12.4 使用Service完成后臺任務12.5 本章同步練習三在Android系統中,Activity運行在稱為UI線程的主線程中,并且系統對Activity的響應時間有嚴格的要求:也就是對每個用戶操作的響應時長不能超過規定的時間長度,否則系統將出現異常,也將導致用

59、戶使用體驗的嚴重下降。因此,在Android系統中,對于需要較長時間執行的功能都應該放在后臺進行。不僅如此,Android也要求對于需要較長時間或執行時間不確定的功能,例如網絡通信等都必須放在后臺線程執行;12.1 使用Java線程執行后臺任務對于一些需要較長時間執行的程序任務,我們完全可以使用Java的線程機制,也就是Thread類來執行這些任務;一個簡單的例子:顯示一個簡單的時鐘;看一個例子;12.2 本章同步練習一將12.1節中的程序復制到你的開發環境中,并做如下修改:每到一個整點,例如早上8:00、晚上10:00,系統自動播放一段簡短的音樂。提示:每到一個整點,啟動一個后臺線程來播放音

60、樂;12.3 使用AsyncTask執行后臺任務在Android程序中執行后臺任務是一個普遍的要求,因此,Android為了便于實現后臺任務,提供了AsyncTask工具類。使用AsyncTask,可以使應用程序在后臺執行任務,并將任務的運行狀態或結果顯示在UI主界面線程中;需要重寫AsyncTask的4個方法;protected void onPreExecute( );protected Result doInBackground (Params. params);protected void onProgressUpdate (Progress. values);protected vo

溫馨提示

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

評論

0/150

提交評論