Android開發(fā)實(shí)例大全_第1頁
Android開發(fā)實(shí)例大全_第2頁
Android開發(fā)實(shí)例大全_第3頁
Android開發(fā)實(shí)例大全_第4頁
Android開發(fā)實(shí)例大全_第5頁
已閱讀5頁,還剩146頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Android開發(fā)實(shí)例大全注:因內(nèi)容過長上傳受限制,本文檔只顯示部分內(nèi)容,完整版文檔請下載此文檔后留言謝謝。目錄\h第1章UI布局實(shí)例集錦\h實(shí)例001:使用線性布局(LinearLayout)來布局屏幕\h實(shí)例002:使用相對布局(RelativeLayout)來布局屏幕\h實(shí)例003:使用表格布局(TableLayout)來布局屏幕\h實(shí)例004:使用絕對布局(AbsoluteLayout)來布局屏幕\h實(shí)例005:使用標(biāo)簽布局(TabLayout)來布局屏幕\h實(shí)例006:使用層布局(FrameLayout)\h實(shí)例007:創(chuàng)建一個(gè)桌面組件Widget\h實(shí)例008:在屏幕中實(shí)現(xiàn)一個(gè)按鈕效果\h實(shí)例009:在屏幕中顯示文字\h實(shí)例010:在屏幕中顯示編輯框\h實(shí)例011:在屏幕中顯示復(fù)選框\h實(shí)例012:在屏幕中顯示單選框\h實(shí)例013:在屏幕中顯示下拉列表框\h實(shí)例014:在屏幕中實(shí)現(xiàn)自動(dòng)輸入文本效果\h實(shí)例015:使用日期選擇器控件DatePicker\h實(shí)例016:自動(dòng)選擇一個(gè)輸入時(shí)間\h實(shí)例017:實(shí)現(xiàn)屏幕自動(dòng)滾動(dòng)\h實(shí)例018:實(shí)現(xiàn)一個(gè)進(jìn)度條效果\h實(shí)例019:開發(fā)一個(gè)評分程序\h實(shí)例020:在屏幕中顯示一幅指定的圖片\h實(shí)例021:設(shè)置一幅圖片作為按鈕來使用\h實(shí)例022:實(shí)現(xiàn)QQ空間中的顯示照片效果\h實(shí)例023:實(shí)現(xiàn)書架展示排列布局效果\h實(shí)例024:實(shí)現(xiàn)樹形菜單布局效果\h第2章控件實(shí)例集錦\h實(shí)例025:顯示在文本框中輸入的信息\h實(shí)例026:使用RadioGroup控件實(shí)現(xiàn)選項(xiàng)選擇功能\h實(shí)例027:使用CheckBox控件實(shí)現(xiàn)同意條款效果\h實(shí)例028:使用Spinner控件實(shí)現(xiàn)選項(xiàng)選擇\h實(shí)例029:使用Gallery控件實(shí)現(xiàn)個(gè)人相簿功能\h實(shí)例030:開發(fā)一個(gè)文件搜索程序\h實(shí)例031:單擊按鈕后實(shí)現(xiàn)按鈕置換\h實(shí)例032:模擬實(shí)現(xiàn)一個(gè)時(shí)鐘界面效果\h實(shí)例033:聯(lián)合使用DatePicker和TimePicker來選擇日期和時(shí)間\h實(shí)例034:動(dòng)態(tài)分隔手機(jī)屏幕\h實(shí)例035:使用ListActivity實(shí)現(xiàn)動(dòng)態(tài)菜單列表\h實(shí)例036:加載手機(jī)磁盤中的文件\h實(shí)例037:實(shí)現(xiàn)抽屜樣式效果\h實(shí)例038:在屏幕中動(dòng)態(tài)顯示多種對話框\h實(shí)例039:手機(jī)秘書——重要事情提醒\h實(shí)例040:動(dòng)態(tài)添加或刪除菜單\h實(shí)例041:自定義Android控件實(shí)現(xiàn)單選按鈕\h實(shí)例042:使用自定義控件在屏幕中繪制一條虛線\h實(shí)例043:在屏幕中實(shí)現(xiàn)手風(fēng)琴效果\h實(shí)例044:在屏幕中實(shí)現(xiàn)有秒針的時(shí)鐘\h實(shí)例045:修飾屏幕中的Button按鈕\h實(shí)例046:在屏幕中實(shí)現(xiàn)定時(shí)器效果\h實(shí)例047:設(shè)置屏幕中控件的樣式\h第3章自動(dòng)化服務(wù)實(shí)例集錦\h實(shí)例048:自動(dòng)獲取手機(jī)屏幕的分辨率\h實(shí)例049:自動(dòng)獲取手機(jī)電池的剩余電量\h實(shí)例050:來電時(shí)自動(dòng)發(fā)送信息提醒\h實(shí)例051:獲取手機(jī)存儲(chǔ)卡的容量\h實(shí)例052:操作存儲(chǔ)卡和內(nèi)存卡中的數(shù)據(jù)\h實(shí)例053:設(shè)置鬧鐘\h實(shí)例054:實(shí)現(xiàn)黑名單來電自動(dòng)靜音處理\h實(shí)例055:設(shè)置一個(gè)自動(dòng)開機(jī)界面\h實(shí)例056:更換手機(jī)屏幕背景圖片系統(tǒng)\h實(shí)例057:設(shè)置自動(dòng)更換手機(jī)桌面背景\h實(shí)例058:自動(dòng)控制后臺系統(tǒng)服務(wù)\h實(shí)例059:在屏幕中拖動(dòng)一個(gè)按鈕\h實(shí)例060:啟動(dòng)和關(guān)閉AlarmManager服務(wù)\h實(shí)例061:自動(dòng)攔截黑名單\h第4章數(shù)據(jù)存儲(chǔ)實(shí)例集錦\h實(shí)例062:在屏幕中顯示SharedPreferences中存儲(chǔ)的信息\h實(shí)例063:演示數(shù)據(jù)添加、刪除等操作\h實(shí)例064:編寫一個(gè)手機(jī)日記本程序\h實(shí)例065:使用ContentProvider開發(fā)一個(gè)手機(jī)日記本\h實(shí)例066:使用文件保存數(shù)據(jù)\h實(shí)例067:將網(wǎng)上的圖片保存到SD卡并在手機(jī)中顯示出來\h實(shí)例068:保存聯(lián)系人信息\h實(shí)例069:使用文件方式保存信息\h實(shí)例070:讀取上次開機(jī)時(shí)保存的信息\h第5章電話和短信實(shí)例集錦\h實(shí)例071:編寫一個(gè)撥號程序\h實(shí)例072:發(fā)送一條短信\h實(shí)例073:單擊按鈕實(shí)現(xiàn)撥號功能\h實(shí)例074:一個(gè)通用發(fā)短信程序\h實(shí)例075:收到短信后用E-mail郵件進(jìn)行通知\h實(shí)例076:實(shí)現(xiàn)觸屏撥號功能\h實(shí)例077:一個(gè)短信群發(fā)程序\h實(shí)例078:來電后自動(dòng)發(fā)送郵件通知\h實(shí)例079:監(jiān)聽手機(jī)撥接狀態(tài)\h實(shí)例080:檢查短信是否發(fā)送成功\h第6章圖形圖像實(shí)例集錦\h實(shí)例081:在屏幕中繪制一個(gè)矩形\h實(shí)例082:在屏幕中繪制一個(gè)畫布\h實(shí)例083:實(shí)現(xiàn)水紋的透明效果\h實(shí)例084:渲染幾何圖形\h實(shí)例085:用圖片為背景實(shí)現(xiàn)動(dòng)畫效果\h實(shí)例086:在手機(jī)屏幕中實(shí)現(xiàn)Frame動(dòng)畫效果\h實(shí)例087:對圖片進(jìn)行縮放處理\h實(shí)例088:旋轉(zhuǎn)屏幕中的圖片\h實(shí)例089:實(shí)現(xiàn)旗幟飛揚(yáng)的效果\h實(shí)例090:模擬構(gòu)建一個(gè)3D場景效果\h實(shí)例091:模擬實(shí)現(xiàn)粒子系統(tǒng)效果\h實(shí)例092:在Canvas中寫文字\h實(shí)例093:移動(dòng)屏幕中的圖片\h實(shí)例094:在屏幕中繪制一個(gè)三維圓柱體\h實(shí)例095:獲取并顯示圖片的寬和高\(yùn)h實(shí)例096:編寫一個(gè)手機(jī)屏保程序\h實(shí)例097:以觸摸方式移動(dòng)圖片\h實(shí)例098:顯示存儲(chǔ)卡中的圖片信息\h實(shí)例099:在手機(jī)屏幕中顯示系統(tǒng)內(nèi)的圖片信息\h第7章和網(wǎng)絡(luò)有關(guān)的實(shí)例集錦\h實(shí)例100:傳遞HTTP參數(shù)\h實(shí)例101:在屏幕中使用HTML程序\h實(shí)例102:在手機(jī)中瀏覽網(wǎng)頁\h實(shí)例103:使用內(nèi)置瀏覽器打開網(wǎng)頁\h實(shí)例104:顯示QQ空間中的照片\h實(shí)例105:通過RSS系統(tǒng)在線瀏覽新聞\h實(shí)例106:下載網(wǎng)絡(luò)圖片作為手機(jī)背景\h實(shí)例107:將文件上傳至服務(wù)器\h實(shí)例108:開發(fā)一個(gè)移動(dòng)博客發(fā)布器\h實(shí)例109:遠(yuǎn)程下載并安裝一個(gè)軟件\h實(shí)例110:控制藍(lán)牙系統(tǒng)\h實(shí)例111:解析并生成XML文件\h實(shí)例112:獲取某個(gè)指定網(wǎng)頁的HTML源碼\h實(shí)例113:使用PULL解析XML數(shù)據(jù)\h實(shí)例114:采用POST方式向服務(wù)器傳遞數(shù)據(jù)\h第8章多媒體實(shí)例集錦\h實(shí)例115:播放一個(gè)指定的MP3文件\h實(shí)例116:調(diào)節(jié)手機(jī)音量的大小\h實(shí)例117:實(shí)現(xiàn)相機(jī)預(yù)覽和拍照功能\h實(shí)例118:在手機(jī)中播放影片\h實(shí)例119:手機(jī)錄音系統(tǒng)\h實(shí)例120:設(shè)置手機(jī)中的鈴聲\h實(shí)例121:在線播放網(wǎng)絡(luò)中的MP3\h實(shí)例122:在線下載音樂作為手機(jī)鈴聲\h實(shí)例123:播放GIF格式的動(dòng)畫\h實(shí)例124:在手機(jī)中播放MP4視頻\h實(shí)例125:在線觀看3GP視頻\h第9章Google地圖實(shí)例集錦\h實(shí)例126:定位當(dāng)前位置的坐標(biāo)\h實(shí)例127:在手機(jī)中使用Google地圖\h實(shí)例128:在地圖中定位輸入的坐標(biāo)\h實(shí)例129:在地圖中快速查詢某個(gè)位置\h實(shí)例130:隨著手機(jī)的移動(dòng)自動(dòng)更新位置\h實(shí)例131:在手機(jī)地圖中描繪線路并計(jì)算線路距離\h實(shí)例132:在Google地圖中顯示指定的位置\h實(shí)例133:在手機(jī)地圖中查詢一個(gè)地址\h實(shí)例134:在手機(jī)中實(shí)現(xiàn)地址查詢\h實(shí)例135:開發(fā)一個(gè)路徑導(dǎo)航系統(tǒng)\h第10章GoogleAPI實(shí)例集錦\h實(shí)例136:模擬驗(yàn)證官方賬號\h實(shí)例137:在手機(jī)中開發(fā)一個(gè)Google搜索程序\h實(shí)例138:在手機(jī)中編寫一個(gè)翻譯軟件\h實(shí)例139:生成一個(gè)二維碼\h實(shí)例140:使用GoogleChartAPI生成二維碼\h第11章平板應(yīng)用\h實(shí)例141:開發(fā)一個(gè)音樂播放器\h實(shí)例142:開發(fā)一個(gè)在線天氣播報(bào)系統(tǒng)\h實(shí)例143:開發(fā)一個(gè)網(wǎng)頁瀏覽程序\h實(shí)例144:使用文件來保存音樂狀態(tài)\h實(shí)例145:在屏幕中顯示不同的進(jìn)度條效果\h實(shí)例146:勇敢派遞員游戲\h第12章游戲應(yīng)用\h實(shí)例147:一個(gè)簡單的貪吃蛇游戲\h實(shí)例148:開發(fā)一個(gè)魔塔游戲\h實(shí)例149:瘋狂足球游戲\h實(shí)例150:21點(diǎn)游戲\h實(shí)例151:俄羅斯方塊游戲\h第13章Android程序優(yōu)化\h實(shí)例152:測試計(jì)算機(jī)的性能\h實(shí)例153:測試內(nèi)存性能\h實(shí)例154:優(yōu)化Android模擬器\h實(shí)例155:使用merge標(biāo)簽優(yōu)化UI界面\h實(shí)例156:優(yōu)化AndroidLayout\h實(shí)例157:優(yōu)化Bitmap圖片\h第14章可穿戴設(shè)備開發(fā)精粹\h實(shí)例158:使用SensorSimulator傳感器\h實(shí)例159:使用磁場傳感器\h實(shí)例160:使用加速度傳感器\h實(shí)例161:使用姿態(tài)傳感器\h實(shí)例162:使用溫度傳感器\h第15章綜合實(shí)例——手機(jī)地圖系統(tǒng)\h實(shí)例163:使用Google地圖開發(fā)一個(gè)綜合地圖系統(tǒng)\h15.1項(xiàng)目分析\h15.1.1規(guī)劃UI界面\h15.1.2數(shù)據(jù)存儲(chǔ)設(shè)計(jì)\h15.2具體實(shí)現(xiàn)\h15.2.1新建工程\h15.2.2主界面\h15.2.3新建界面\h15.2.4設(shè)置界面\h15.2.5幫助界面\h15.2.6地圖界面\h15.2.7數(shù)據(jù)存取\h15.2.8實(shí)現(xiàn)Service服務(wù)\h15.3發(fā)布自己的作品來贏利\h15.3.1申請成為會(huì)員\h15.3.2生成簽名文件\h15.3.3使用簽名文件\h15.3.4發(fā)布\h第16章綜合實(shí)例——音樂播放器系統(tǒng)\h實(shí)例164:開發(fā)一個(gè)音樂播放器\h16.1項(xiàng)目介紹\h16.1.1項(xiàng)目背景介紹\h16.1.2項(xiàng)目目的\h16.1.3對讀者的意義\h16.2需求分析\h16.2.1構(gòu)成模塊\h16.2.2功能結(jié)構(gòu)圖\h16.2.3系統(tǒng)功能說明\h16.2.4總體目標(biāo)\h16.3設(shè)計(jì)數(shù)據(jù)庫\h16.3.1字段設(shè)計(jì)\h16.3.2數(shù)據(jù)庫連接\h16.3.3創(chuàng)建數(shù)據(jù)庫\h16.3.4操作數(shù)據(jù)庫\h16.3.5數(shù)據(jù)顯示\h16.4具體編碼\h16.4.1服務(wù)信息主界面\h16.4.2播放器主界面\h16.4.3播放列表功能\h16.4.4菜單功能模塊\h16.4.5播放設(shè)置界面\h16.4.6設(shè)置顯示歌詞\h16.4.7文件瀏覽器模塊\h第17章體育類游戲——NBA激情投籃\h實(shí)例165:NBA激情投籃\h17.1項(xiàng)目介紹\h17.1.1意義和技術(shù)分析\h17.1.2策劃游戲\h17.1.3準(zhǔn)備工作\h17.2項(xiàng)目架構(gòu)\h17.2.1總體架構(gòu)\h17.2.2規(guī)劃類\h17.3具體編碼\h17.3.1編寫主類LanqiuActivity\h17.3.2編寫常量類\h17.3.3設(shè)計(jì)游戲試玩界面\h17.3.4繪制游戲場景\h第18章綜合郵件系統(tǒng)\h實(shí)例166:開發(fā)一個(gè)綜合郵件系統(tǒng)\h18.1項(xiàng)目介紹\h18.1.1項(xiàng)目背景介紹\h18.1.2項(xiàng)目目的\h18.2系統(tǒng)需求分析\h18.2.1構(gòu)成模塊\h18.2.2系統(tǒng)流程\h18.2.3功能結(jié)構(gòu)圖\h18.2.4系統(tǒng)功能說明\h18.2.5系統(tǒng)需求\h18.3數(shù)據(jù)存儲(chǔ)設(shè)計(jì)\h18.3.1用戶信息類\h18.3.2SharedPreferences\h18.4具體編碼\h18.4.1歡迎界面\h18.4.2系統(tǒng)主界面\h18.4.3郵箱類型設(shè)置\h18.4.4郵箱收取設(shè)置\h18.4.5郵箱發(fā)送設(shè)置\h18.4.6郵箱用戶檢查\h18.4.7設(shè)置用戶別名\h18.4.8用戶郵件編輯\h18.5總結(jié)\h第1章UI布局實(shí)例集錦外觀向來是工業(yè)產(chǎn)品的設(shè)計(jì)核心,是激發(fā)用戶購買欲望的主要因素之一。本章講的UI布局指的是手機(jī)界面布局,一款手機(jī)的屏幕界面效果是吸引用戶購買的重要元素之一,因?yàn)橄M(fèi)者更傾向于選擇界面美觀的產(chǎn)品。在設(shè)計(jì)優(yōu)美的界面之前,一定要先對屏幕進(jìn)行布局。本章將通過具體實(shí)例的實(shí)現(xiàn)過程介紹在Android系統(tǒng)中規(guī)劃UI界面的方法。\h實(shí)例001:使用線性布局(LinearLayout)來布局屏幕源碼路徑:daima\001知識點(diǎn)介紹在Android布局中,需要了解視圖容器組件—ViewGroup的概念,使用視圖容器組件ViewGroup的語法格式如下:

Android.view.Viewgroup

ViewGroup的功能是包含并管理下級系列的Views和其他ViewGroup,是一個(gè)布局的基類。類ViewGroup好像一個(gè)View容器,負(fù)責(zé)對添加進(jìn)來的View進(jìn)行布局處理。一個(gè)ViewGroup可以添加到另一個(gè)ViewGroup中去。這是因?yàn)閂iewGroup也繼承于View.Viewgroup類,是其他容器類的基類。它們之間的關(guān)系如圖1-1所示。圖1-1各個(gè)類的繼承關(guān)系我們知道,一個(gè)Android程序是由一個(gè)或多個(gè)Activity組成的,每個(gè)Activity是一個(gè)UI容器,Activity本身不在用戶界面中顯示出來。在Android中,類View起了非常重要的作用,View是一個(gè)最基本的UI類,幾乎所有的UI組件都是繼承于View而實(shí)現(xiàn)的。使用View的語法格式如下所示。

android.view.View

線性布局即LinearLayout布局,是Android屏幕中常用的布局方式之一,功能是垂直或水平地顯示ViewGroup的子視圖(View)元素。具體實(shí)現(xiàn)使用Eclipse創(chuàng)建一個(gè)名為“001”的Android工程。編寫布局文件“res/layout/main.xml”,代碼如下所示。

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

<LinearLayoutxmlns:android="/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="horizontal">

<Buttonandroid:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第一個(gè)按鈕"

android:layout_weight="1"

/>

<Buttonandroid:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第二個(gè)按鈕"

android:layout_weight="1"

/>

<Buttonandroid:id="@+id/button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第三個(gè)按鈕"

android:layout_weight="1"

/>

<Buttonandroid:id="@+id/button4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第四個(gè)按鈕"

android:layout_weight="1"

/>

<Buttonandroid:id="@+id/button5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第五個(gè)按鈕"

android:layout_weight="1"

/>

</LinearLayout>

在上述代碼中,在根LinearLayout視圖組(ViewGroup)中包含了5個(gè)按鈕(Button),它的子元素是以線性方式水平布局的。上述代碼的運(yùn)行效果如圖1-2所示。圖1-2LinearLayout布局效果\h實(shí)例002:使用相對布局(RelativeLayout)來布局屏幕源碼路徑:daima\002知識點(diǎn)介紹相對布局是設(shè)計(jì)用戶界面的有力工具,因?yàn)樗饲短滓晥D組。相對布局是指一個(gè)ViewGroup以相對位置顯示它的子視圖(View)元素,一個(gè)視圖可以指定相對于它的兄弟視圖的位置(如在給定視圖的左邊或者下面)或相對于RelativeLayout的特定區(qū)域的位置(如底部對齊或中間偏左)。RelativeLayout允許子元素指定它們相對于其他元素或父元素的位置(通過ID指定)。所以可以用右對齊、上下對齊或置于屏幕中央的形式來排列兩個(gè)元素。如果第一個(gè)元素在屏幕的中央,那么相對于這個(gè)元素的其他元素將以屏幕中央的相對位置來排列。如果使用XML來指定這個(gè)布局,在定義它之前,被關(guān)聯(lián)的元素必須定義。RelativeLayout結(jié)構(gòu)如圖1-3所示。圖1-3RelativeLayout結(jié)構(gòu)具體實(shí)現(xiàn)使用Eclipse創(chuàng)建一個(gè)名為“002”的Android工程。編寫布局文件“res/layour/main.xml”,代碼如下所示。

<TextView

android:id="@+id/label"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="請輸入信息:"/>

<EditText

android:id="@+id/entry"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:drawable/editbox_background"

android:layout_below="@id/label"/>

<Button

android: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="確定"/>

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toLeftOf="@id/ok"

android:layout_alignTop="@id/ok"

android:text="取消"/>

執(zhí)行后的效果如圖1-4所示。圖1-4執(zhí)行效果在上述實(shí)例中,在RelativeLayout視圖組中包含了一個(gè)TextView、一個(gè)EditView和兩個(gè)Button,并且使用了下面的屬性代碼來設(shè)置布局的顯示。

android:layout_below="@id/label"/>

android:layout_below="@id/entry"

android:layout_alignParentRight="true"

android:layout_toLeftOf="@id/ok"

android:layout_alignTop="@id/ok"

在使用相對布局方式時(shí),正是使用這些類似的屬性來定位視圖到你想要的位置的,它們的值是你參照的視圖的ID。這些屬性的意思很簡單,就是英文單詞的直譯,這里就不多做介紹了。\h實(shí)例003:使用表格布局(TableLayout)來布局屏幕源碼路徑:daima\003知識點(diǎn)介紹表格布局(TableLayout)其實(shí)是一個(gè)ViewGroup以表格顯示它的子視圖(View)元素,即行和列標(biāo)識一個(gè)視圖的位置。其實(shí)Android的表格布局與HTML中的表格布局非常類似,TableRow就像HTML表格的<tr>標(biāo)記。表格布局通常用于把子元素放入行與列中,不顯示行、列或單元格邊界線,但是單元格不能橫跨行,像HTML中一樣。表格布局效果如圖1-5所示。圖1-5表格布局效果在使用表格布局時(shí)需要了解如下3點(diǎn)。android:shrinkColumns:對應(yīng)的方法是setShrinkAllColumns(boolean),作用是設(shè)置表格的列是否收縮(列編號從0開始,下同),如果有多列則用逗號隔開(下同),如android:shrinkColumns="0,1,2",表示表格的第1、2、3列的內(nèi)容是收縮的以適合屏幕,不會(huì)擠出屏幕。android:collapseColumns:對應(yīng)的方法是setColumnCollapsed(int,boolean),作用是設(shè)置表格的列是否隱藏。android:stretchColumns:對應(yīng)的方法是setStretchAllColumns(boolean),作用是設(shè)置表格的列是否拉伸。具體實(shí)現(xiàn)使用Eclipse創(chuàng)建一個(gè)名為“003”的Android工程。編寫布局文件“res/layour/main.xml”,代碼如下所示。

<TableRow>

<Buttonandroid:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第一個(gè)按鈕"

android:layout_column="0"

/>

<Buttonandroid:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第二個(gè)按鈕"

android:layout_column="1"

/>

</TableRow>

<TableRow><!--row2-->

<Buttonandroid:id="@+id/button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第三個(gè)按鈕"

android:layout_column="1"

/>

<Buttonandroid:id="@+id/button4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第四個(gè)按鈕"

android:layout_column="1"

/>

</TableRow>

<TableRow>

<Buttonandroid:id="@+id/button5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="第五個(gè)按鈕"

android:layout_column="2"

/>

</TableRow>

執(zhí)行后的效果如圖1-6所示。圖1-6執(zhí)行效果\h實(shí)例004:使用絕對布局(AbsoluteLayout)來布局屏幕源碼路徑:daima\004知識點(diǎn)介紹絕對布局(AbsoluteLayout)是指一個(gè)ViewGroup以絕對方式顯示它的子視圖(View)元素,即以坐標(biāo)的方式來定位在屏幕上位置。這種布局方式很好理解,在布局文件中編程設(shè)置View的坐標(biāo),從而絕對地定位。AbsoluteLayout可以讓子元素指定準(zhǔn)確的x和y坐標(biāo)值,并顯示在屏幕上。其中坐標(biāo)(0,0)為左上角,當(dāng)向下或向右移動(dòng)時(shí),坐標(biāo)值將變大。AbsoluteLayout沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。我們通常不推薦使用AbsoluteLayout,除非有正當(dāng)理由使用它,因?yàn)樗鼤?huì)使界面代碼太過剛性,以至于在不同的設(shè)備上可能不能很好地工作。AbsoluteLayout效果如圖1-7所示。圖1-7AbsoluteLayout效果具體實(shí)現(xiàn)使用Eclipse創(chuàng)建一個(gè)名為“004”的Android工程。編寫布局文件“res/layour/main.xml”,代碼如下所示。

<AbsoluteLayoutxmlns:android="/apk/res/android"

android:id="@+id/AbsoluteLayout01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextViewandroid:id="@+id/txtIntro"

android:text="使用絕對布局"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_x="20dip"

android:layout_y="20dip">

</TextView>

</AbsoluteLayout>

執(zhí)行后的效果如圖1-8所示。圖1-8執(zhí)行效果\h實(shí)例005:使用標(biāo)簽布局(TabLayout)來布局屏幕源碼路徑:daima\005知識點(diǎn)介紹標(biāo)簽布局(TabLayout)是一個(gè)ViewGroup以標(biāo)簽的方式顯示它的子視圖(View)元素,就像在Firefox中的一個(gè)窗口中顯示多個(gè)網(wǎng)頁一樣。為了創(chuàng)建一個(gè)標(biāo)簽UI(tabbedUI),需要使用TabHost和TabWidget。TabHost必須是布局的根節(jié)點(diǎn),它包含顯示標(biāo)簽的TabWidget和顯示標(biāo)簽內(nèi)容的FrameLayout。具體實(shí)現(xiàn)使用Eclipse創(chuàng)建一個(gè)名為“005”的Android工程。編寫布局文件“res/layour/main.xml”,代碼如下所示。

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

<TableLayoutxmlns:android="/apk/res/android"

android:layout_width="fill_parent"android:layout_height="fill_parent">

<TableRow>

<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"

android:text="7"/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="8"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="9"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="/"

/>

</TableRow>

<TableRow>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="4"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="5"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="6"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="*"

/>

</TableRow>

<TableRow>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="1"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="2"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="3"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="."

/>

</TableRow>

<TableRow>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="0"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="="

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="-"

/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"android:text="+"

/>

</TableRow>

</TableLayout>

執(zhí)行后將顯示一個(gè)計(jì)算器的效果,如圖1-9所示。圖1-9執(zhí)行效果\h實(shí)例006:使用層布局(FrameLayout)源碼路徑:daima\006知識點(diǎn)介紹層布局(FrameLayout)是最簡單的一種布局方法,它在屏幕上設(shè)置一個(gè)空白備用區(qū)域,這樣就可以在其中填充某一個(gè)單一對象,如一張圖片。所有的子元素被固定在屏幕的左上角。但是我們不能為FrameLayout中的一個(gè)子元素指定一個(gè)位置,后一個(gè)子元素將會(huì)直接在前一個(gè)子元素之上進(jìn)行覆蓋填充,把它們部分或全部擋住,除非后一個(gè)子元素是透明的。具體實(shí)現(xiàn)使用Eclipse創(chuàng)建一個(gè)名為“006”的Android工程。編寫布局文件“res/layour/main.xml”,代碼如下所示。

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

<FrameLayoutxmlns:android="/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:text="big"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="50pt"/>

<TextView

android:text="middle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20pt"/>

<TextView

android:text="small"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="10pt"/>

</FrameLayout>

因?yàn)樽煮w多層重疊所以會(huì)發(fā)生重影效果,執(zhí)行后效果如圖1-10所示。圖1-10執(zhí)行效果\h實(shí)例007:創(chuàng)建一個(gè)桌面組件Widget源碼路徑:daima\007\src\m\MainActivity.java知識點(diǎn)介紹Widget是一個(gè)桌面組件,功能是實(shí)現(xiàn)桌面布局。Android本身已經(jīng)自帶了時(shí)鐘、音樂播放器、相框和Google搜索4個(gè)Widget程序,開發(fā)人員可以自行開發(fā)自己需要的更加美觀、功能更加豐富的程序。所以,當(dāng)我們購買一款A(yù)ndroid手機(jī)產(chǎn)品時(shí),在桌面上都顯示了一些諸如天氣預(yù)報(bào)、日歷等經(jīng)常用到的信息。具體實(shí)現(xiàn)使用Eclipse創(chuàng)建一個(gè)MainActivity作為應(yīng)用程序的入口,自動(dòng)生成的主文件是MainActivity.java,其主要代碼如下所示。

packagem.usewidget;

importm.usewidget.R;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.widget.Button;

publicclassMainActivityextendsActivity{

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

在上述代碼中,關(guān)聯(lián)了一個(gè)模板布局文件main.xml。這樣,就可以在里面繼續(xù)添加需要的控件了,如按鈕、列表框、進(jìn)度條和圖片等。編寫布局文件main.xml,主要代碼如下所示。

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

<LinearLayoutxmlns:android="/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

</LinearLayout>

通過上述代碼,在手機(jī)屏幕中使用了Widget組件。執(zhí)行后不會(huì)顯示任何信息,這是因?yàn)闆]有在里面添加任何元素。由此可見,Widget組件只是起了一個(gè)“容器”的作用,我們只需把要顯示的屏幕元素添加到這個(gè)“容器”里面即可。注意:本章接下來的實(shí)例代碼,都保存在本實(shí)例項(xiàng)目中,即本章剩余實(shí)例的源碼都保存在“007\src\m”目錄下。\h實(shí)例008:在屏幕中實(shí)現(xiàn)一個(gè)按鈕效果源碼路徑:daima\007\src\m知識點(diǎn)介紹Button控件即按鈕控件,在日常應(yīng)用時(shí),當(dāng)單擊按鈕后會(huì)觸發(fā)一個(gè)事件,這個(gè)事件會(huì)實(shí)現(xiàn)用戶需要的功能。如用戶輸入一些信息,單擊【確定】或【取消】按鈕后會(huì)實(shí)現(xiàn)對應(yīng)的一些操作功能。Android中的Button控件是最基本的常用控件,每一個(gè)Button都會(huì)使用系統(tǒng)提供的默認(rèn)背景作為按鈕的默認(rèn)風(fēng)格。但是這個(gè)系統(tǒng)默認(rèn)的背景可能會(huì)因?yàn)椴煌脑O(shè)備或者同一個(gè)平臺系統(tǒng)的不同版本而不同,如WindowsXP和Windows2000的默認(rèn)UI差別很大。在實(shí)際項(xiàng)目中設(shè)計(jì)界面風(fēng)格時(shí),往往需要讓使用中的Button有一個(gè)“更加漂亮”的外觀風(fēng)格。無論是初學(xué)者還是高手,通常都使用StateListDrawable(狀態(tài)圖片列表)來實(shí)現(xiàn)“更加漂亮”的外觀風(fēng)格,這種理念是根據(jù)Button的不同狀態(tài)來用自己設(shè)計(jì)的背景圖片替換Button默認(rèn)的背景圖片的功能,從而讓這個(gè)Button達(dá)到想要的設(shè)計(jì)效果。具體實(shí)現(xiàn)修改布局文件main.xml,在里面添加一個(gè)TextView和一個(gè)Button,主要代碼如下所示。

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

<LinearLayoutxmlns:android="/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:id="@+id/show_TextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

<Button

android:id="@+id/Click_Button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="單擊"

/>

</LinearLayout>

在文件mainActivity.java中,先通過findViewByID()獲取TextView文本和Button按鈕的資源,然后為Button按鈕添加事件監(jiān)聽器Button.OnClickListener(),最后定義處理事件處理程序。其主要代碼如下所示。

//獲取TextView文本和Button按鈕的資源

show=(TextView)findViewById(R.id.show_TextView);

press=(Button)findViewById(R.id.Click_Button);

//為Button按鈕添加事件監(jiān)聽器Button.OnClickListener()

press.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewv){

}

});

//定義事件處理程序

press.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewv){

//單擊按鈕后輸出一段文本

show.setText("按鈕被單擊了一下");

}

});

執(zhí)行后首先顯示一個(gè)“按鈕+文本”樣式的界面,當(dāng)單擊【這是button】按鈕后會(huì)執(zhí)行單擊事件,執(zhí)行定義的事件處理程序,如圖1-11所示。圖1-11執(zhí)行效果\h實(shí)例009:在屏幕中顯示文字源碼路徑:daima\007\src\m知識點(diǎn)介紹在手機(jī)屏幕中可以通過文本框控件TextView來顯示文本。使用TextView控件的基本步驟如下所示。導(dǎo)入TextView包,具體代碼如下所示。

importandroid.widget.TextView;

在文件mainActivity.java中聲明一個(gè)TextView,如下面的代碼所示。

privateTextViewmTextView01;

在文件main.xml中定義一個(gè)TextView對象TextView01,如下面的代碼所示。

<TextViewandroid:text="TextView01"

android:id="@+id/TextView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="61px"

android:layout_y="69px">

</TextView>

利用findViewById()方法獲取main.xml中的TextView,如下面的代碼所示。

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

設(shè)置TextView標(biāo)簽內(nèi)容,如下面的代碼所示。

Stringstr_2="歡迎來到Android世界...";

mTextView01.setText(str_2);

設(shè)置文本超鏈接,如下面的代碼所示。

<TextView

android:id="@+id/TextView02"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:autoLink="all"

android:text="請?jiān)L問Android開發(fā)者:

/index.html">

</TextView>

具體實(shí)現(xiàn)修改文件mainActivity.java,在里面分別添加12個(gè)TextView對象變量,一個(gè)LinearLayout對象變量、一個(gè)整數(shù)變量WC、一個(gè)LinearLayout.LayoutParams變量,其主要代碼如下所示。

/*定義使用的對象*/

privateLinearLayoutmyLayout;

privateLinearLayout.LayoutParamslayoutP;

privateintWC=LinearLayout.LayoutParams.WRAP_CONTENT;

privateTextViewblack_TV,blue_TV,cyan_TV,dkgray_TV,

gray_TV,green_TV,ltgray_TV,magenta_TV,red_TV,

transparent_TV,white_TV,yellow_TV;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

/*實(shí)例化一個(gè)LinearLayout布局對象*/

myLayout=newLinearLayout(this);

/*設(shè)置LinearLayout的布局為垂直布局*/

myLayout.setOrientation(LinearLayout.VERTICAL);

/*設(shè)置LinearLayout布局的背景圖片*/

myLayout.setBackgroundResource(R.drawable.back);

/*加載主屏布局*/

setContentView(myLayout);

/*實(shí)例化一個(gè)LinearLayout布局參數(shù),用來添加View*/

layoutP=newLinearLayout.LayoutParams(WC,WC);

/*構(gòu)造實(shí)例化TextView對象*/

constructTextView();

/*把TextView添加到LinearLayout布局中*/

addTextView();

/*設(shè)置TextView文本顏色*/

setTextViewColor();

/*設(shè)置TextView文本內(nèi)容*/

setTextViewText();

}

/*設(shè)置TextView文本內(nèi)容*/

publicvoidsetTextViewText(){

black_TV.setText("黑色");

blue_TV.setText("藍(lán)色");

cyan_TV.setText("青綠色");

dkgray_TV.setText("灰黑色");

gray_TV.setText("灰色");

green_TV.setText("綠色");

ltgray_TV.setText("淺灰色");

magenta_TV.setText("紅紫色");

red_TV.setText("紅色");

transparent_TV.setText("透明");

white_TV.setText("白色");

yellow_TV.setText("黃色");

}

/*設(shè)置TextView文本顏色*/

publicvoidsetTextViewColor(){

black_TV.setTextColor(Color.BLACK);

blue_TV.setTextColor(Color.BLUE);

dkgray_TV.setTextColor(Color.DKGRAY);

gray_TV.setTextColor(Color.GRAY);

green_TV.setTextColor(Color.GREEN);

ltgray_TV.setTextColor(Color.LTGRAY);

magenta_TV.setTextColor(Color.MAGENTA);

red_TV.setTextColor(Color.RED);

transparent_TV.setTextColor(Color.TRANSPARENT);

white_TV.setTextColor(Color.WHITE);

yellow_TV.setTextColor(Color.YELLOW);

}

/*構(gòu)造實(shí)例化TextView對象*/

publicvoidconstructTextView(){

black_TV=newTextView(this);

blue_TV=newTextView(this);

cyan_TV=newTextView(this);

dkgray_TV=newTextView(this);

gray_TV=newTextView(this);

green_TV=newTextView(this);

ltgray_TV=newTextView(this);

magenta_TV=newTextView(this);

red_TV=newTextView(this);

transparent_TV=newTextView(this);

white_TV=newTextView(this);

yellow_TV=newTextView(this);

}

/*把TextView添加到LinearLayout布局中*/

publicvoidaddTextView(){

myLayout.addView(black_TV,layoutP);

myLayout.addView(blue_TV,layoutP);

myLayout.addView(cyan_TV,layoutP);

myLayout.addView(dkgray_TV,layoutP);

myLayout.addView(gray_TV,layoutP);

myLayout.addView(green_TV,layoutP);

myLayout.addView(ltgray_TV,layoutP);

myLayout.addView(magenta_TV,layoutP);

myLayout.addView(red_TV,layoutP);

myLayout.addView(transparent_TV,layoutP);

myLayout.addView(white_TV,layoutP);

myLayout.addView(yellow_TV,layoutP);

}

}

執(zhí)行后的效果如圖1-12所示。圖1-12執(zhí)行效果\h實(shí)例010:在屏幕中顯示編輯框源碼路徑:daima\007\src\m知識點(diǎn)介紹在手機(jī)屏幕中,可以和網(wǎng)頁中一樣顯示可輸入文本信息的文本框,此功能是通過編輯框控件EditText實(shí)現(xiàn)的。編輯框控件EditText的用法和TextView類似,它能生成一個(gè)可編輯的文本框。具體實(shí)現(xiàn)在主窗口界面中添加一個(gè)EditText控件,然后設(shè)定其監(jiān)聽器在接收到單擊事件時(shí),程序打開EditText的界面。定義文件editview.xml來布局程序打開的EditText界面,具體代碼如下所示。

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

<LinearLayoutxmlns:android="/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

//供用戶輸入值

<EditTextandroid:id="@+id/edit_text"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="這里可以輸入文字"/>

//用于獲取輸入值

<Buttonandroid:id="@+id/get_edit_view_button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="獲取EditView的值"/>

</LinearLayout>

編寫事件處理文件EditTextActivity.java,主要代碼如下所示。

publicclassEditTextActivityextendsActivity{

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setTitle("EditTextActivity");

setContentView(R.layout.editview);

find_and_modify_text_view();

}

privatevoidfind_and_modify_text_view(){

Buttonget_edit_view_button=(Button)findViewById(R.id.get_edit_view_button);

get_edit_view_button.setOnClickListener(get_edit_view_button_listener);

}

privateButton.OnClickListenerget_edit_view_button_listener=newButton.OnClickListener(){

/**響應(yīng)代碼,顯示EditText中的值**/

publicvoidonClick(Viewv){

EditTextedit_text=(EditText)findViewById(R.id.edit_text);

CharSequenceedit_text_value=edit_text.getText();

setTitle("EditText的值:"+edit_text_value);

}

};

}

執(zhí)行后先顯示默認(rèn)的文本和輸入框,如圖1-13所示;輸入一段文本并單擊【獲取EditView的值】按鈕后會(huì)獲取輸入的文字,并顯示出輸入的文字,如圖1-14所示。圖1-13初始效果圖1-14執(zhí)行效果\h實(shí)例011:在屏幕中顯示復(fù)選框源碼路徑:daima\007\src\m知識點(diǎn)介紹在網(wǎng)頁中有復(fù)選框這一概念,復(fù)選框提供一個(gè)制造選擇開關(guān)的方法,它包括一個(gè)小框和一個(gè)標(biāo)簽。典型的復(fù)選框中有一個(gè)小的“X”(或者它設(shè)置的其他類型符號)或是空的,這取決于項(xiàng)目是否被選擇。在手機(jī)屏幕中也可以實(shí)現(xiàn)復(fù)選框的效果,此功能是通過CheckBox控件實(shí)現(xiàn)的。CheckBox控件能夠?yàn)橛脩籼峁┹斎胄畔?,用戶可以一次性選擇多個(gè)選項(xiàng)。在Android中,使用CheckBox控件也需要在XML布局文件中定義。具體實(shí)現(xiàn)編寫布局文件check_box.xml,插入擁有4個(gè)可選項(xiàng)的CheckBox控件供用戶選擇,然后插入一個(gè)Button控件來響應(yīng)用戶的單擊事件,具體代碼如下所示。

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

<LinearLayoutxmlns:android="/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<CheckBoxandroid:id="@+id/plain_cb"

android:text="Plain"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

<CheckBoxandroid:id="@+id/serif_cb"

android:text="Serif"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:typeface="serif"

/>

<CheckBoxandroid:id="@+id/bold_cb"

android:text="Bold"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textStyle="bold"

/>

<CheckBoxandroid:id="@+id/italic_cb"

android:text="Italic"

android:layout_width="wrap_c

溫馨提示

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

評論

0/150

提交評論