




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章
Android應(yīng)用的界面編程安裝Eclipse+adt注意事項1,瘋狂android講義光盤源文件,權(quán)限去掉只讀。2,虛擬機AVD,API版本17。3,虛擬機屏幕分辨率,400*800以內(nèi)合適,內(nèi)存512M以下。虛擬機第一次啟動非常慢(>5分鐘)!4,環(huán)境變量:續(xù)接不是修改PATH;在cmd下執(zhí)行javac和setPATH,以檢測是否成功。5,系統(tǒng)自建appcompat_v7不要刪除6,新工程,SDK版本不低于14。2.1
界面編程與視圖(View)組件2.1.1
視圖組件與容器組件2.1.2
使用XML布局文件控制UI界面2.1.3
在Java代碼中控制UI界面2.1.4
使用XML布局文件和Java代碼混合控制UI界面2.1.1
視圖組件與容器組件TextView類,普通組件。ViewGroup類,容器組件,可以包含其他組件。繼承關(guān)系2.1.2
使用XML布局文件控制UI界面使用XML布局文件控制UI界面:例0/面板添加TextView(1)在Android應(yīng)用的res/layout目錄下編寫XML布局文件,使用以下Java代碼顯示XML文件中布局的內(nèi)容。setContentView(R.layout.main);(2)在Java文件中,通過每個組件的android:id屬性訪問,使用下面語句訪問XML文件中定義的組件。findViewById(R.id.***);缺點:靜態(tài)無變化,不推薦這種方法2.1.3
在JAVA代碼控制UI界面JAVA代碼控制界面的3個步驟,例2.1/codeview(1)創(chuàng)建布局管理器。LinearLayoutlayout=newLinearLayout(this);(2)創(chuàng)建具體的組件,可以是TextView、ImageView、EditText和Button等,并且設(shè)置組件的布局和各種屬性。Buttonbn=newButton(this);(3)將創(chuàng)建的具體組件添加到布局管理器中。layout.addView(bn);缺點:代碼臃腫,不推薦這種方法2.1.4
使用XML布局文件和Java代碼混合控制UI界面XML控制界面,JAVA控制行為XML布局文件的優(yōu)勢控制變化小、行為比較固定的組件Java代碼的優(yōu)勢控制變化較多、行為控制比較復(fù)雜的組件例2.1/MixView2.2
第1組UI組件:布局管理器2.2.1
線性布局2.2.2
表格布局2.2.3
幀布局2.2.4
相對布局2.2.5
網(wǎng)格布局2.2.6
絕對布局2.2.1
線性布局
例2.2/LinerLayout每一行或每一列,只能放一個組件,不會換行。組件排列到窗體邊緣,多余的組件不會顯示。XML布局文件中語法:<LinearLayout屬性列表></LinearLayout>以行、列的形式來管理放入其中的UI組件。表格布局使用<TableLayout>標記定義每個<TableRow>標記,表示增加一行。在<TableRow>標記中,添加一個組件,就增加一列。列屬性:可被設(shè)置為隱藏,伸展,收縮等。2.2.2
表格布局組件/列組件/列組件/列組件/列組件/列組件/列<TableRow><TableRow><TableRow><TableLayout>XML布局文件中語法:<TableLayoutxmlns:android="/apk/res/android"
屬性列表><TableRow屬性列表>需要添加的UI組件</TableRow> ……</TableLayout>XML屬性描述android:collapseColumns設(shè)置需要被隱藏的列的列序號android:shrinkColumns設(shè)置允許被收縮的列的列序號android:stretchColumns設(shè)置允許被拉伸的列的列序號2.2.2
表格布局例2.2/TableLayout2.2.4
相對布局按照組件之間的相對位置來進行布局。如某組件在另一個組件的左邊、右邊、上方或下方等。XML布局文件中語法:<RelativeLayout屬性列表></RelativeLayout>XML屬性描述android:gravity布局管理器中各組件的對齊方式android:ignoreGravity指定哪個組件不受gravity屬性的影響RelativeLayout的常用XML屬性。XML屬性描述android:layout_centerHorizontal位于布局管理器水平居中的位置android:layout_alignRight位于哪個組件的右邊界對齊android:layout_above位于哪個組件的上方android:layout_toRightOf位于哪個組件的右側(cè)2.2.4
相對布局例2.2/RelativeLayoutTest作業(yè)2使用任意布局管理器,繪制這個界面提交工程文件夾壓縮后命名為學(xué)號_姓名.rar~~~~~~~~~~~分割線~~~~~~~~~~~2.3
第2組UI組件:TextView及其子類2.3.1
文本框(TextView)與編輯框(EditText)2.3.2
EditText的功能與用法2.3.3
按鈕(Button)組件的功能和用法2.3.5
單選按鈕(RadioButton)復(fù)選框(CheckBox)2.3.1
TextView的功能和用法
例2.3/TextViewTestTextView功能:用于顯示文本,不能編輯。繼承關(guān)系:是EditText和Button類的父類。Xml中的語法
<TextView
屬性列表
> </TextView>重要屬性(表2.13)android:text android:passwordandroid:gravity android:autoLinkandroid:textsize2.3.2
EditText的功能與用法
例2.3/InputUIEditText功能:可編輯的文本框。繼承關(guān)系:是TextView類的子類。Xml中的語法
<EditText
屬性列表
> </EditText>重要屬性(表2.13)android:background背景android:hint提示文字android:inputeType輸入數(shù)字number2.3.3
按鈕(Button)功能和用法例2.3/ButtonTest例2.1/CodeView-P45功能:監(jiān)聽用戶點擊動作,觸發(fā)onClick事件。XML語法
<Button
屬性列表 > </Button>重要屬性android:background背景圖片作業(yè)3在例2.3/InputUI基礎(chǔ)上修改,下面增加一個TextView運行程序:用戶名EditText輸入姓名名學(xué)號單擊按鈕后下面的TextView輸出剛輸入的內(nèi)容2.3.5
單選按鈕(RadioButton)與復(fù)選框(CheckBox)的功能與用法1.單選按鈕RadioButton,例2.3\CheckButtonTest是Button子類,
RadioButton與RadioGroup一起用。<RadioGroup android:orientation="horizontal"
> <!--添加多個RadioButton組件--><RadioButtonandroid:text="顯示文本"android:id="@+id/ID號"android:checked="true|false“></RadioButton><RadioButton…….</RadioButton></RadioGroup>2.復(fù)選按鈕CheckBox,例2.3\CheckButtonTest在XML布局文件中添加復(fù)選按鈕的基本格式如下:<CheckBox android:text="顯示文本" android:id="@+id/ID號" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>2.3.5
單選按鈕(RadioButton)與復(fù)選框(CheckBox)的功能與用法作業(yè)4在2.3/CheckButton例子基礎(chǔ)上修改點擊男,女單選框時輸出的內(nèi)容”您的性別+紅+藍+綠色”~~~~~~~~~~~分割線~~~~~~~~~~~ImageView作用顯示圖像將要顯示的圖片放置在res/drawable目錄中XML代碼格式<ImageViewandroid:src=ImageView所顯示的Drawable對象的ID。android:tint=
”#rgb”,”#argb”,”#rrggbb”,”#aarrggbb”表示的顏色值。屬性列表></ImageView>2.4
ImageView及其子類XML屬性描述android:scaleTypefitCenter:保持縱橫比縮放圖片,直到該圖片能完全顯示在ImageView中。centerCrop:保持縱橫比縮放圖片,完全覆蓋ImageView,只要圖片最短邊顯示出來。fitXY:對圖片橫、縱向獨立縮放,圖片的縱橫比可能會改變。fitCenter效果(默認)centerCrop效果fitXY效果例2.4/ImageViewTest2.5
AdapterView及子類2.5.1
列表視圖(ListView)和ListActivity2.5.2
Adapter接口及實現(xiàn)類2.5.1
列表視圖(ListView)和ListActivity列表視圖包含:顯示布局文件和數(shù)據(jù)源。2.5.1
列表視圖(ListView)和ListActivity垂直列表的兩種顯示方式1.使用ListView組件例2.5\SimpleListViewTestXML語法格式:<ListView
屬性列表></ListView>2.讓Activity繼承ListActivity
(不常用)
例2.5\ListActivityTest程序的窗口僅顯示一個列表。繼承了ListActivity的類,無須調(diào)用setContentView()方法,直接為其設(shè)置適配器。2.5.2
Adapter接口及實現(xiàn)類Adapter接口作用:在ListView組件和數(shù)據(jù)源之間架起一個橋梁,通過Adapter接口就可以實現(xiàn)將數(shù)據(jù)源中的數(shù)據(jù)顯示到ListView控件中。Adapter的實現(xiàn)類:1、ArrayAdapter,簡單,只能顯示文本2、SimpleAdapter,強大,可以顯示圖片,文本3、BaseAdapter,擴展功能,數(shù)量任意定制2.5.2
Adapter接口及實現(xiàn)類1、簡單的ArrayAdapter,需要3個參數(shù):第一個參數(shù):context對象,this。第二個參數(shù):指定一個界面布局的ID,外觀樣式。第三個參數(shù):是一個String[]類型的參數(shù),提供數(shù)據(jù)。例2.5\ArrayAdapterTest2.5.2
Adapter接口及實現(xiàn)類2、強大的SimpleAdapter,需要5個參數(shù):第一個參數(shù):context對象,this;第二個參數(shù):List<?extendsMap<String,?>>集合對象;第三個參數(shù):指定一個界面布局的ID,外觀文件。第四個參數(shù):是一個String[]類型的參數(shù),對應(yīng)于參數(shù)二,顯示哪些列表項。第五個參數(shù):是一個int[]類型的參數(shù),第四個參數(shù)的外觀。例2.5\SimpleAdapterTest*2.5.2
Adapter接口及實現(xiàn)類3、BaseAdapter不在XML中控制外觀在Java代碼中控制外觀列表數(shù)量任意定制需要重寫4個方法。例2.5\BaseAdapterTest2.6
第5組UI組件:ProgressBar及其子類2.6.1
進度條(ProgressBar)功能與用法2.6.2
拖動條(SeekBar)的功能和用法2.6.3
星級評分條(RatingBar)的功能和用法2.6.1
進度條(ProgressBar)功能顯示某個耗時操作完成的百分比。XML文件語法<ProgressBar
屬性列表></ProgressBar>2.6.1
進度條(ProgressBar)
例2.6/ProgressBarTestJava方法描述setProgress(intprogress)設(shè)置進度百分比incrementProgressBy(intdiff)進度變化,正數(shù)增加,負數(shù)減少XML屬性描述android:max用于設(shè)置進度條的最大值android:progress用于指定進度條的已完成的進度值android:progressDrawable用于設(shè)置進度條的軌道的繪制形式2.7
第6組UI組件:
ViewAnimator及其子類2.7.1
ViewSwitcher的功能與用法2.7.2
圖像切換器(ImageSwitcher)的功能與用法2.7.3
文本切換器(TextSwitcher)的功能與用法2.7.4
ViewFlipper的功能與用法功能:實現(xiàn)類似于Windows操作系統(tǒng)下的“Windows照片查看器”中的上一張、下一張切換圖片的功能。步驟:設(shè)定一個ViewFactory。通過makeView()方法來創(chuàng)建用于顯示圖片的ImageView,指定樣式。用setImageResource()方法指定顯示的圖片。例2.7/ImageSwitcherTest2.7.2
圖像切換器(ImageSwitcher)作業(yè)5參考2.7/ImageSwitcherTest添加“下一張”,“上一張”按鈕,切換圖片~~~~~~~~~~~分割線~~~~~~~~~~~單位:px、dp和sp的區(qū)別px:即像素,屏幕上一個物理的像素點。不建議使用,因為同樣100px的圖片,在不同手機上顯示的實際大小可能不同pt:1pt=1/72英寸=0.035厘米in:英寸,1英寸=2.54厘米參考:http:///beijingshi1/article/details/10985361單位:px、dp和sp的區(qū)別dpi:像素密度(像素/英寸,DotsPerInch)舉例屏幕尺寸:1.5x2英寸,分辨率:240x320像素(橫向)240/1.5=160dpi(縱向)320/2=160dpi應(yīng)用舉例視網(wǎng)膜屏幕:分辨率超過人眼識別極限的高分辨率屏幕,由蘋果公司在2010年在iPhone4發(fā)布會上首次推出,像素密度達到326像素/英寸。打印機精度的參數(shù)之一。dp:Android單位dp=px/(dpi/160)=1/160英寸不同dpi的手機,顯示相同dp圖片,大小差不多。單位:px、dp和sp的區(qū)別手機寬度(英寸)1英寸1英寸1英寸2英寸分辨率px120px160px240px240px像素密度dpi120dpi160dpi240dpi圖片尺寸80dp80dp80dp80dp80dp圖片像素px=dp*(dpi/160)60px80px120px圖片實際尺寸0.5英寸0.5英寸0.5英寸1英寸=2.54厘米120dpi60px0.5英寸單位:px、dp和sp的區(qū)別Sp:和dp很類似Android系統(tǒng)允許用戶自定義文字尺寸,如:小、正常、大、超大等,類似在windows里調(diào)整字體尺寸——窗口大小不變,只有文字大小改變。文字尺寸正常時:1sp=1dp=0.00625英寸文字尺寸大或超大時:1sp>1dp=0.00625英寸建議文字的尺寸用sp單位,textSize="16sp“非文字的尺寸使用dp單位,layout_width="60dp“2.8
各種雜項組件2.8.1
使用Toast顯示提示信息框2.8.6
選項卡(TabHost)的功能和用法2.8.8
Notification的功能與用法2.8.1
使用Toast顯示提示信息框
例2.8/ToastTest顯示一個消息提示框不會獲得焦點,自動消失簡單用法Toast.makeText(MainActivity.this,“提示信息文字",Toast.LENGTH_SHORT).show();復(fù)雜布局newToast(this)向布局管理器layout添加控件Toast.setView(layout)*2.8.3
日期、時間選擇器的功能和用法功能:選擇日期和時間實現(xiàn)步驟為了在程序中獲取用戶選擇的日期、時間,需要為DatePicker組件和TimePicker組件添加事件監(jiān)聽器。DatePicker的監(jiān)聽器是OnDateChangedListenerTimePicker的監(jiān)聽器是OnTimeChangedListener2.8.6
選項卡(TabHost)的功能和用法例2.8/TabHostTestTabHost功能多標簽頁,減少窗體個數(shù),界面利用率高。組成TabHost、TabWidget和FrameLayout3個組件。實現(xiàn)步驟在布局文件中添加TabHost、TabWidget和FrameLayout組件。編寫各標簽頁的XML布局文件。在Activity中,為TabHost對象添加標簽頁。2.8.8
Notification的功能與用法
例2.8/NotificationTest功能:在狀態(tài)欄顯示通知通過NotificationManager服務(wù)發(fā)送通知Notification對象Notification對象可以包括:文字,圖片,聲音,震動,燈光,啟動界面作業(yè)6參考2.8/NotificationTest通知欄顯示title:姓名,學(xué)號內(nèi)容:您的成績是98分2.9
對話框2.9.1
使用AlertDialog創(chuàng)建對話框2.9.2
對話框風格的窗口2.9.3
使用PopupWindow2.9.4
使用DatePickerDialog、TimePickerDialog2.9.5
使用ProgressDialog創(chuàng)建進度對話框2.9.1
使用AlertDialog創(chuàng)建對話框JAVA方法描述setTitle(CharSequencetitle)標題setIcon(Drawableicon)圖標setMessage(message)文本內(nèi)容setNegativeButton()取消按鈕setPositi
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙銷售茶葉合同范本
- 農(nóng)業(yè)維護協(xié)議合同范本
- 辦公耗材批發(fā)合同范本
- 醫(yī)院保潔耗材合同范本
- 合同范本由誰出
- 售賣蛋糕合同范本
- 受托付款合同范例
- 員工社保合同范本
- 合同范本個可以獲取
- 廚師勞務(wù)派遣服務(wù)合同范本
- 2025年榆林市公共交通總公司招聘(57人)筆試參考題庫附帶答案詳解
- 醫(yī)院培訓(xùn)課件:《多發(fā)性骨髓瘤》
- 【新】部編人教版小學(xué)4四年級《道德與法治》下冊全冊教案
- 2025年湖南省長沙市單招職業(yè)傾向性測試題庫及參考答案
- 《產(chǎn)業(yè)轉(zhuǎn)移》課件:機遇與挑戰(zhàn)
- 十八項核心制度培訓(xùn)課件
- 2024年遠程教育行業(yè)市場運營現(xiàn)狀及行業(yè)發(fā)展趨勢報告
- 2025年2月上海市高三聯(lián)考高考調(diào)研英語試題(答案詳解)
- 三好學(xué)生競選12
- 2024-2025學(xué)年六年級上學(xué)期數(shù)學(xué)第三單元3.1-搭積木比賽(教案)
- DeepSeek從入門到精通
評論
0/150
提交評論