Android應(yīng)用開(kāi)發(fā)案例教程課件_第1頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第2頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第3頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第4頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

張霞深圳職業(yè)技術(shù)學(xué)院Android應(yīng)用開(kāi)發(fā)案例教程(AndroidStudio第二版)

0103020405AndroidUI設(shè)計(jì)圖像和動(dòng)畫數(shù)據(jù)存儲(chǔ)廣播Broadcast與服務(wù)Service媒體播放與錄制Activity與多個(gè)用戶界面07網(wǎng)絡(luò)編程技術(shù)書目錄06第6章

圖像和動(dòng)畫Android應(yīng)用開(kāi)發(fā)案例教程(AndroidStudio第二版)6.1圖形繪制6.2動(dòng)畫技術(shù)6.3圖像瀏覽6.4觸屏事件處理章目錄6.1圖形繪制Android繪圖中最簡(jiǎn)單的就是使用Canvas繪制幾何圖形。Canvas被稱為畫布,上面可以繪制各種東西,是Android系統(tǒng)2D圖形繪制的基礎(chǔ)。屏幕原點(diǎn)坐標(biāo)在左上角(0,0)。過(guò)原點(diǎn)的水平直線為x軸,向右為正方向;過(guò)原點(diǎn)的垂線為y軸,向下為正方向。312畫布類Canvas畫筆類Paint路徑類Path6.1圖形繪制幾何圖形繪制工具在Android系統(tǒng)中繪制幾何圖形需要用到一些繪圖工具,這些繪圖工具都在graphics包。Canvas是Android繪制幾何圖形的主要工具。Paint用來(lái)描述所繪制圖形的顏色和風(fēng)格,如線條寬度、顏色等信息。當(dāng)繪制由一些線段組成的圖形(如三角形、四邊形等),需要用Path類來(lái)描述線段路徑。6.1圖形繪制6.1圖形繪制使用畫布對(duì)象Canvas繪制各種圖形。創(chuàng)建一個(gè)View的子類,并重寫View類的onDraw()方法。使用invalidate()方法刷新畫面。繪制幾何圖形的過(guò)程如下:繪制幾何圖形6.1圖形繪制6.2動(dòng)畫技術(shù)6.3圖像瀏覽6.4觸屏事件處理章目錄6.2動(dòng)畫技術(shù)動(dòng)畫組件Animations,是一個(gè)實(shí)現(xiàn)androidUI界面動(dòng)畫效果的API,Animations提供了一系列的動(dòng)畫效果,可以進(jìn)行旋轉(zhuǎn)、縮放、淡入淡出等,這些效果可以應(yīng)用在絕大多數(shù)的控件中。補(bǔ)間動(dòng)畫只需指定開(kāi)始、結(jié)束的“關(guān)鍵幀“,而變化中的其它幀由系統(tǒng)來(lái)計(jì)算,不必一幀一幀的去定義。逐幀動(dòng)畫需要?jiǎng)?chuàng)建一個(gè)Drawable序列,這些Drawable可以按照指定的時(shí)間間歇一個(gè)一個(gè)的顯示。動(dòng)畫組件Animations大致分為兩類:(1)補(bǔ)間動(dòng)畫(TweenedAnimations)(2)逐幀動(dòng)畫(FrameAnimations)6.2.1動(dòng)畫組件6.2.2補(bǔ)間動(dòng)畫TweenedAnimation-÷×+Alpha:淡入淡出效果,其對(duì)應(yīng)子類為AlphaAnimation。Scale:縮放效果,其對(duì)應(yīng)子類為ScaleAnimation。Rotate:旋轉(zhuǎn)效果,其對(duì)應(yīng)子類為RotateAnimation。Translate:移動(dòng)效果,其對(duì)應(yīng)子類為TranslateAnimation。補(bǔ)間動(dòng)畫有四種動(dòng)畫效果及對(duì)應(yīng)的子類:6.2.2補(bǔ)間動(dòng)畫TweenedAnimation【例6-2】編寫一個(gè)可以旋轉(zhuǎn)、縮放、淡入淡出、移動(dòng)的補(bǔ)間動(dòng)畫程序。布局的控件、屬性和效果程序的運(yùn)行結(jié)果屬性動(dòng)畫是對(duì)補(bǔ)間動(dòng)畫技術(shù)的補(bǔ)充。補(bǔ)間動(dòng)畫(TweenedAnimation)有一個(gè)缺陷,只能更改View的繪畫效果,而View的真實(shí)屬性是不被改變的。如果在補(bǔ)間動(dòng)畫中將一個(gè)Button從左邊移到右邊,無(wú)論怎么單擊移動(dòng)后的Button都沒(méi)有反應(yīng),只有單擊移動(dòng)前的Button的位置時(shí)才有反應(yīng)。為了修補(bǔ)這個(gè)缺陷,Android推出了屬性動(dòng)畫,

屬性動(dòng)畫可以直接改變View對(duì)象的屬性值,讓程

序能準(zhǔn)確處理View對(duì)象。6.2.3屬性動(dòng)畫屬性動(dòng)畫的核心類ValueAnimator和ObjectAnimator。6.2.3屬性動(dòng)畫屬性動(dòng)畫的運(yùn)行機(jī)制是通過(guò)不斷地對(duì)值進(jìn)行操作來(lái)實(shí)現(xiàn)的,而初始值和結(jié)束值之間的動(dòng)畫過(guò)渡就是由ValueAnimator這個(gè)類來(lái)負(fù)責(zé)計(jì)算的。它還負(fù)責(zé)管理動(dòng)畫的播放次數(shù)、播放模式、以及對(duì)動(dòng)畫設(shè)置監(jiān)聽(tīng)器等。1)ValueAnimator類0bjectAnimator是ValueAnimator的子類,包含了時(shí)間引擎和值計(jì)算,這使得設(shè)置動(dòng)畫更加容易。它可以直接對(duì)任意對(duì)象的任意屬性進(jìn)行動(dòng)畫操作的,比如說(shuō)View的alpha屬性。2)0bjectAnimator

類0bjectAnimator

類利用ObjectAnimator的ofFloat方法實(shí)現(xiàn)一個(gè)動(dòng)畫,語(yǔ)法:

ofFloat(Objecttarget,StringpropertyName,float

…values)參數(shù):target對(duì)象,動(dòng)畫要操作的控件。propertyName屬性名,動(dòng)畫要操作控件的屬性?!璿alues可變長(zhǎng)參數(shù),指這個(gè)屬性值的變化。例如alpha屬性從0變到1再變到0。6.2.3屬性動(dòng)畫【例6-3】編寫一個(gè)可以旋轉(zhuǎn)、縮放、淡入淡出的屬性動(dòng)畫程序。布局的控件、屬性和效果程序的運(yùn)行結(jié)果6.1圖形繪制6.2動(dòng)畫技術(shù)6.3圖像瀏覽6.4觸屏事件處理章目錄6.3圖像瀏覽圖像瀏覽是很常見(jiàn)的功能,Android實(shí)現(xiàn)圖片瀏覽的方法很多,隨著版本更新,一些老的方法被逐漸替代,另一些更有設(shè)計(jì)感的新控件不斷被推出。這里介紹三種實(shí)現(xiàn)技術(shù):6.3.1圖像顯示類(ImageView)6.3.2圖片切換類(ImageSwitcher)6.3.3網(wǎng)格視圖類(GridView)6.3.1圖像顯示類ImageView主要用于顯示圖片或圖標(biāo)等圖像資源,并提供圖像縮放及著色等處理功能?;仡?.4.3圖像顯示類

ImageView6.3.1圖像顯示ImageView類【例6-4】ImageView圖像瀏覽示例布局的控件、屬性和效果6.3.2圖片切換類ImageSwitcher控制圖片展示效果,如幻燈片效果等。setImageResource(intid)設(shè)置圖片資源庫(kù)。 使用ImageSwitcher,必須用ViewFactory接口的makeView()方法創(chuàng)建視圖。6.3.2圖片切換ImageSwitcher類【例6-5】ImageSwitcher展示相冊(cè)示例。ImageSwitcher展示相冊(cè)示例使用ImageSwitcher和HorizontalScrollView實(shí)現(xiàn)滾動(dòng)瀏覽相冊(cè)功能。HorizontalScrollView可以實(shí)現(xiàn)代碼控制水平滾動(dòng)定位,它是一個(gè)FrameLayout,這意味著只能放置一個(gè)子控件。不過(guò)子控件本身也可以是一個(gè)布局控件。6.3.3網(wǎng)格視圖GridView類GridView控件可以把一個(gè)空間組織成一個(gè)二維的網(wǎng)格,然后放入一批圖片。加載的若干圖片,會(huì)被統(tǒng)一進(jìn)行大小限制和加邊框處理,GridView是實(shí)現(xiàn)九宮圖的首選。GridView需要一個(gè)合適的適配器(Adapter)協(xié)助。適配器是View和數(shù)據(jù)的橋梁。在一個(gè)ListView或GridView中,不可能給每一行或每個(gè)格子都新建一個(gè)View。在第1章使用了ArrayAdapter數(shù)組適配器,將一批數(shù)據(jù)輸出到ListView視圖。這里使用BaseAdapter適配器,將一批圖片輸出到GridView視圖。6.3.3網(wǎng)格視圖GridView類

BaseAdapter適配器BaseAdapter作為最基礎(chǔ)的適配器,它可以做所有的事情,不會(huì)像ArrayAdapter有那么多局限性,但是使用起來(lái)會(huì)麻煩一點(diǎn)。BaseAdapter是一個(gè)抽象類,程序需要通過(guò)繼承BaseAdapter,實(shí)現(xiàn)它的抽象方法,自定義Adapter。繼承BaseAdapter需要實(shí)現(xiàn)4個(gè)抽象方法:getCount()、getItem()、getItemId()和getView()??梢院?jiǎn)單地理解為,Adapter先從getCount()里確定數(shù)量,然后循環(huán)執(zhí)行g(shù)etView()方法以將圖片逐個(gè)繪制出來(lái)。

6.3.3網(wǎng)格視圖GridView類【例6-6】GridView展示相冊(cè)示例。GridView展示相冊(cè)BaseAdapter的用法新建一個(gè)ImageAdapter,繼承自BaseAdapter,實(shí)現(xiàn)父類的4個(gè)方法:getCount():要綁定的條目的數(shù)目,比如格子的數(shù)量。getItem():根據(jù)一個(gè)索引(位置)獲得該位置的對(duì)象。getItemId():獲取條目的id。getView():獲取該條目要顯示的視圖。6.1圖形繪制6.2動(dòng)畫技術(shù)6.3圖像瀏覽6.4觸屏事件處理章目錄6.4游戲中的觸屏事件處理當(dāng)屏幕接受到某種觸碰時(shí),可根據(jù)不同情況,進(jìn)行不同處理。觸屏監(jiān)聽(tīng)接口的監(jiān)聽(tīng)方法onTouch(),示例如下:參數(shù)view是事件源對(duì)象,參數(shù)event為事件對(duì)象,它有三種常量:MotionEvent.ACTION_DOWN:按下,MotionEvent.ACTION_UP:抬起,MotionEvent.ACTION_MOVE:滑動(dòng)。對(duì)比View.OnTouchListener和View.OnClickListener,兩種監(jiān)聽(tīng)都很常用,但是觸屏事件監(jiān)聽(tīng)的優(yōu)先級(jí)更高。classmyTouchimplementsView.OnTouchListener{@OverridepublicbooleanonTouch(Viewview,MotionEventevent){//TODOreturntrue;

}}6.4游戲中的觸屏事件處理【例6-7】游戲中觸屏事件示例。把圖片顯示在點(diǎn)擊觸摸屏的地方,圖片能

溫馨提示

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

評(píng)論

0/150

提交評(píng)論