十平面繪圖與動(dòng)畫課件_第1頁(yè)
十平面繪圖與動(dòng)畫課件_第2頁(yè)
十平面繪圖與動(dòng)畫課件_第3頁(yè)
十平面繪圖與動(dòng)畫課件_第4頁(yè)
十平面繪圖與動(dòng)畫課件_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

平面繪圖與動(dòng)畫平面繪圖與動(dòng)畫一、Canvas繪圖要在Android行動(dòng)裝置繪製平面圖形,所使用的工具主要來自「android.graphics.*」套件。要使用Canvas繪圖你將需以下的物件:Canvas:Canvas其實(shí)就是應(yīng)用程式執(zhí)行時(shí)顯示的畫面,有點(diǎn)類似一般繪圖用的畫布,是繪圖發(fā)生的地點(diǎn)。Paint:是繪圖的執(zhí)行工具,它能控制使用的顏色、透明度、畫刷大小、圖形填滿模式與樣式等;如果用以繪製文字,透過Paint類別也能設(shè)定文字的字型、字體與大小等。Bitmap:實(shí)際畫出來的圖形,其實(shí)就是所繪出圖形像素的集合體。一、Canvas繪圖要在Android行動(dòng)裝置繪製平面圖形,繪製的基本形狀:組成繪製內(nèi)容的基本圖素,如點(diǎn)、線段、矩形、橢圓形等。繪圖主要是在View類別的「onDraw(Canvas)」方法內(nèi)完成,因此要在Canvas上繪圖,應(yīng)該先建立一個(gè)繼承自View的子類別,然後在此類別中的onDraw(Canvas)方法內(nèi)完成繪圖。繪製的基本形狀:組成繪製內(nèi)容的基本圖素,如點(diǎn)、線段、矩形、橢二、基本形狀繪製常用的繪製方法說明如下:劃點(diǎn):在指定位置劃點(diǎn)。劃一個(gè)點(diǎn)使用「drawPoint(floatx,floaty,Paintpaint)」方法;劃多個(gè)點(diǎn)則使用「drawPoints(float[]float,intoffset,intcount,Paintpaint)」方法。畫一條線段:使用的方法為「drawLine(floatstartX,floatstartY,floatstopX,floatstopY,Paintpaint)」。畫多條線段:使用的方法為「drawLines(float[]pts,intoffset,intcount,Paintpaint)」。二、基本形狀繪製常用的繪製方法說明如下:劃?。菏褂玫姆椒椤竏rawArc(RectFoval,floatstartAngle,floatsweepAngle,booleanuseCenter,Paintpaint)」。劃圓:使用的方法為「drawCircle(floatcx,floatcy,floatradius,Paintpaint)」。劃?rùn)E圓:使用的方法為「drawOval(RectFoval,Paintpaint)」。劃矩形:使用的方法為「drawRect(floatleft,floattop,floatright,floatbottom,Paintpaint)」。劃圓角矩形:使用的方法為「drawRoundRect(RectFrect,floatrx,floatry,Paintpaint)」劃弧:使用的方法為「drawArc(RectFoval,CanvasDrawTest範(fàn)例在Canvas上繪製一些不同顏色的幾何圖形。在專案中增加一個(gè)View的延伸類別,命名為「DrawImage.java」。在這自建類別中用Paint陣列設(shè)定了6組畫刷,分別用以繪製6種幾何圖形。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。CanvasDrawTest範(fàn)例三、路徑與繪製文字路徑是一條曲線,封閉或開放都可以,Canvas類別以drawPath(Pathpath,Paintpaint)方法繪製路徑。path:路徑的軌跡;對(duì)開放路徑是由不同線段組成,對(duì)封閉路徑則可以是一個(gè)形狀(如圓、矩形等)。Paint:繪圖時(shí)使用的畫刷。畫刷也提供「setPathEffect(PathEffecteffect)」方法,可用以設(shè)定路徑的特殊效果,設(shè)定內(nèi)容如下:CornerPathEffect:設(shè)定線段與線段之間的連接角為指定半徑的圓角,建構(gòu)函式定義為CornerPathEffect(floatradius)。三、路徑與繪製文字路徑是一條曲線,封閉或開放都可以,CanvDashPathEffect:設(shè)定構(gòu)成路徑的線段是以破折號(hào)構(gòu)成。PathDashPathEffect:類似DashPathEffect,但破折號(hào)是以指定形狀建立。ComposePathEffect:作用是先應(yīng)用內(nèi)部的效果(參數(shù)2),再用外部效果(參數(shù)1)。null:不設(shè)定任何特效。Canvas對(duì)文字提供3組方法,說明如下:drawText():從指定位置劃出文字,執(zhí)行此方法需提供要?jiǎng)澋奈淖?、開始劃的位置以及畫刷等參數(shù)。DashPathEffect:設(shè)定構(gòu)成路徑的線段是以破折號(hào)構(gòu)rawTextOnPath():沿指定的路徑劃出文字內(nèi)容,執(zhí)行此方法需提供要?jiǎng)澋奈淖帧⒁姥穆窂?、指定從距離路徑起點(diǎn)水平位置開始劃、設(shè)定文字與路徑的垂直偏移量以及畫刷等參數(shù),也可以指定只劃文字的部份內(nèi)容。drawPosText():這方法是以指定文字內(nèi)容每一個(gè)字(中文字或英文字母)的位置,將文字顯示在Canvas上,執(zhí)行時(shí)需要提供要?jiǎng)澋奈淖?、含每個(gè)字(或英文字母)座標(biāo)的陣列以及畫刷等參數(shù),也可以指定只劃文字的部份內(nèi)容。rawTextOnPath():沿指定的路徑劃出文字內(nèi)容,執(zhí)DrawTextTest範(fàn)例在Canvas上劃出4組文字,第1組只設(shè)定文字大小與顏色;第2組除了文字大小與顏色外,還設(shè)定了文字傾斜效果;第3組使用第1組的畫刷,但設(shè)定文字沿指定路徑描繪;第4組也是使用第1組的畫刷,但指定了文字描繪時(shí)每一個(gè)字的座標(biāo)位置。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。DrawTextTest範(fàn)例四、點(diǎn)陣圖繪製Canvas也能將現(xiàn)成的點(diǎn)陣圖影像檔繪到視圖中。要繪製現(xiàn)成的點(diǎn)陣圖影像檔,最簡(jiǎn)單的方法就是透過「Drawable」類別取得影像檔資源,然後用此類別的「draw()」方法將點(diǎn)陣圖劃在Canvas上。在繪製之前,必須呼叫「setBound(Rect)」方法,以一個(gè)矩形區(qū)域告訴Drawable物件要繪製的位置與大小。四、點(diǎn)陣圖繪製Canvas也能將現(xiàn)成的點(diǎn)陣圖影像檔繪到視圖中另一種作法是透過「Bitmap」與「BitmapFactory」類別,這種作法是先用「InputStream」物件取得要繪製點(diǎn)陣圖的資源,然後借助BitmapFactory類別的「decodeStream()」方法將存有點(diǎn)陣圖資源的輸入串流解碼為Bitmap物件,最後再用Canvas的「drawBitmap()」方法繪出點(diǎn)陣圖。DrawBitmapTest範(fàn)例同時(shí)使用Drawable與Bitmap在Canvas上繪出g6.jpg與g5.jpg影像檔。此檔案已事先存至專案「/res/drawable-xhdpi/」目錄。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。另一種作法是透過「Bitmap」與「BitmapFactor五、2D影像處理2D影像處理是指對(duì)Canvas上繪製的幾何圖形、文字或點(diǎn)陣圖(以下均稱為影像),變更它的性質(zhì)(如透明度)、增加色彩渲染效果、或是改變它的幾何關(guān)係。改變影像透明度影像透明度可以透過畫刷的「setAlpha(int)」方法完成,設(shè)定的值從0(完全透明)到255(完全不透明)。五、2D影像處理2D影像處理是指對(duì)Canvas上繪製的幾何圖為影像增加渲染效果渲染主要是讓原影像和另一個(gè)圖樣(可以是顏色或其他影像)融合而產(chǎn)生的特殊效果。Android提供的渲染方式有以下幾種:BitmapShader:用點(diǎn)陣圖作為渲染的圖樣。publicBitmapShader(Bitmapbitmap,

Shader.TileModetileX,Shader.TileModetileY)LinearGradient:渲染圖樣是沿一條指定線(以線2端的座標(biāo)指定)變化的色彩publicLinearGradient(floatx0,floaty0,floatx1,floaty1,int[]colors,float[]positions,Shader.TileModetile)為影像增加渲染效果RadialGradient:渲染圖樣是以指定中心為起點(diǎn),輻射向外變化的顏色梯度publicRadialGradient(floatx,floaty,floatradius,int[]colors,float[]positions,Shader.TileModetile)SweepGradient:渲染圖樣是以指定中心產(chǎn)生的掃描顏色梯度publicSweepGradient(floatcx,floatcy,int[]colors,float[]positions)ComposeShader:從指定的2個(gè)渲染器建立組合渲染器publicComposeShader(ShadershaderA,

ShadershaderB,Xfermodemode)或publicComposeShader(ShadershaderA,

ShadershaderB,PorterDuff.Modemode)RadialGradient:渲染圖樣是以指定中心為起點(diǎn),輻使用Matrix改變影像幾何關(guān)係AndroidSDK提供Matrix類別,可以對(duì)影像進(jìn)行變換處理,變換包括有:旋轉(zhuǎn)、縮放、傾斜、平移等,只要透過Matrix實(shí)體類別的方法設(shè)定想要的變換,再將此Matrix實(shí)體類別用Canvas的「setMatrix(Matrixmatrix)」方法設(shè)定給自己,就能完成指定的變換。旋轉(zhuǎn)(Rotate):「publicvoidsetRotate(floatdegrees)」或「publicvoidsetRotate(floatdegrees,floatpx,floatpy)」??s放(Scale):「publicvoidsetScale(floatsx,floatsy)」或「publicvoidsetScale(floatsx,floatsy,floatpx,floatpy)」,以(px,py)為縮放中心,X軸縮放率sx,Y軸縮放率sy。使用Matrix改變影像幾何關(guān)係傾斜(Skew):「publicvoidsetSkew(floatkx,floatky)」或「publicvoidsetSkew(floatkx,floatky,floatpx,floatpy)」,以(px,py)為傾斜中心,X軸傾斜率kx,Y軸傾斜率ky。平移(Translate):「publicvoidsetTranslate(floatdx,floatdy)」,X軸移動(dòng)距離dx,Y軸移動(dòng)距離dy。傾斜(Skew):「publicvoidsetSkew(六、平面動(dòng)畫一般有3種建立平面動(dòng)畫的方式:影格動(dòng)畫(Frameanimation):這是傳統(tǒng)動(dòng)畫產(chǎn)生的方式,藉由播放一系列影像及利用視覺暫留現(xiàn)象,使靜態(tài)影像產(chǎn)生動(dòng)的感覺。補(bǔ)間動(dòng)畫(Tweenanimation):利用提供動(dòng)畫目標(biāo)開始及結(jié)束的屬性值與動(dòng)畫時(shí)間,讓系統(tǒng)自行產(chǎn)生中間的過程,動(dòng)畫的設(shè)定可以透過動(dòng)畫XML定義檔設(shè)定,或是直接用程式控制。動(dòng)態(tài)繪圖:這方式是利用持續(xù)更新Canvas上繪出的圖形(幾何圖形、文字或點(diǎn)陣圖),達(dá)到動(dòng)畫效果。六、平面動(dòng)畫一般有3種建立平面動(dòng)畫的方式:影格動(dòng)畫影格動(dòng)畫可以透過「AnimationDrawable」類別實(shí)現(xiàn),一般設(shè)定步驟如下:將要用以產(chǎn)生動(dòng)畫的影像檔加入專案「/res/drawable-xhdpi/」目錄。設(shè)定活動(dòng)佈局。動(dòng)畫使用的影像清單可以透過XML定義檔設(shè)定,此檔以<animation-list>標(biāo)籤為清單設(shè)定開始位置,清單的每一個(gè)影像在<item>內(nèi)用「android:drawable」指定使用的影像檔,並用「android:duration」指定此張影像出現(xiàn)的時(shí)間長(zhǎng)度。影格動(dòng)畫在活動(dòng)類別中建立AnimationDrawable與Resources物件,讓AnimationDrawable物件參考到動(dòng)畫使用的影像清單XML定義檔,並將此AnimationDrawable物件設(shè)定給顯示媒介ImageView元件。範(fàn)例FrameAnimationXMLTest範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。對(duì)於影格動(dòng)畫,也可以不建立動(dòng)畫影像清單定義檔,而直接用AnimationDrawable物件的「addFrame()」方法,將動(dòng)畫影像一張張加入,這時(shí)候Resources物件getDrawable()方法的對(duì)象不再是動(dòng)畫影像清單定義檔,而是各別的影像檔。在活動(dòng)類別中建立AnimationDrawable與Reso補(bǔ)間動(dòng)畫補(bǔ)間動(dòng)畫依據(jù)要?jiǎng)討B(tài)變化的屬性,各有對(duì)應(yīng)的Animation物件,以程式設(shè)定的方式步驟如下:設(shè)定活動(dòng)佈局。在活動(dòng)程式碼實(shí)體化要?jiǎng)討B(tài)變化屬性的動(dòng)畫類別。範(fàn)例TweenAnimationTest詳細(xì)內(nèi)容請(qǐng)參考原書。補(bǔ)間動(dòng)畫與影格動(dòng)畫最大差別為,補(bǔ)間動(dòng)畫變動(dòng)的是顯示元件的屬性,而影格動(dòng)畫是影像本身內(nèi)容改變。補(bǔ)間動(dòng)畫動(dòng)態(tài)繪圖動(dòng)態(tài)繪圖產(chǎn)生的動(dòng)畫其實(shí)就是不斷重新改變劃在Canvas上的圖形。繪圖是透過自建View子類別的onDraw(Canvas)方法將影像劃在Canvas上。呼叫onDraw方法需要傳送Canvas物件給它,而Canvas物件是由系統(tǒng)親自管理,所以onDraw方法是由系統(tǒng)呼叫。在自建的View子類別內(nèi)要執(zhí)行onDraw方法,只能透過「invalidate()」方法向系統(tǒng)提出執(zhí)行onDraw方法的請(qǐng)求。動(dòng)態(tài)繪圖CanvasAnimationTest範(fàn)例以動(dòng)態(tài)繪圖方式,在Canvas上劃出一條從左上角(10,10)逐漸向右下角延伸的直線。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。CanvasAnimationTest範(fàn)例七、手繪應(yīng)用程式HandDrawTest範(fàn)例目的是讓使用者用手在觸控螢?zāi)簧侠L圖。繪圖部份可以透過繪製路徑的方法(drawPath(Pathpath,Paintpaint))完成,但路徑的座標(biāo)就必須借重「MotionEvent」類別。當(dāng)觸控螢?zāi)话l(fā)生觸控相關(guān)事件,系統(tǒng)會(huì)傳送MotionEvent物件給被觸視圖的「onTouchEvent(MotionEventevent)」方法。這個(gè)方法利用MotionEvent物件的「getAction()」方法,可以知道發(fā)生的是什麼樣的觸控事件(壓下、拖曳或放開),用「getX()」與「getY()」方法則可以取得事件發(fā)生的位置。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。七、手繪應(yīng)用程式HandDrawTest範(fàn)例平面繪圖與動(dòng)畫平面繪圖與動(dòng)畫一、Canvas繪圖要在Android行動(dòng)裝置繪製平面圖形,所使用的工具主要來自「android.graphics.*」套件。要使用Canvas繪圖你將需以下的物件:Canvas:Canvas其實(shí)就是應(yīng)用程式執(zhí)行時(shí)顯示的畫面,有點(diǎn)類似一般繪圖用的畫布,是繪圖發(fā)生的地點(diǎn)。Paint:是繪圖的執(zhí)行工具,它能控制使用的顏色、透明度、畫刷大小、圖形填滿模式與樣式等;如果用以繪製文字,透過Paint類別也能設(shè)定文字的字型、字體與大小等。Bitmap:實(shí)際畫出來的圖形,其實(shí)就是所繪出圖形像素的集合體。一、Canvas繪圖要在Android行動(dòng)裝置繪製平面圖形,繪製的基本形狀:組成繪製內(nèi)容的基本圖素,如點(diǎn)、線段、矩形、橢圓形等。繪圖主要是在View類別的「onDraw(Canvas)」方法內(nèi)完成,因此要在Canvas上繪圖,應(yīng)該先建立一個(gè)繼承自View的子類別,然後在此類別中的onDraw(Canvas)方法內(nèi)完成繪圖。繪製的基本形狀:組成繪製內(nèi)容的基本圖素,如點(diǎn)、線段、矩形、橢二、基本形狀繪製常用的繪製方法說明如下:劃點(diǎn):在指定位置劃點(diǎn)。劃一個(gè)點(diǎn)使用「drawPoint(floatx,floaty,Paintpaint)」方法;劃多個(gè)點(diǎn)則使用「drawPoints(float[]float,intoffset,intcount,Paintpaint)」方法。畫一條線段:使用的方法為「drawLine(floatstartX,floatstartY,floatstopX,floatstopY,Paintpaint)」。畫多條線段:使用的方法為「drawLines(float[]pts,intoffset,intcount,Paintpaint)」。二、基本形狀繪製常用的繪製方法說明如下:劃?。菏褂玫姆椒椤竏rawArc(RectFoval,floatstartAngle,floatsweepAngle,booleanuseCenter,Paintpaint)」。劃圓:使用的方法為「drawCircle(floatcx,floatcy,floatradius,Paintpaint)」。劃?rùn)E圓:使用的方法為「drawOval(RectFoval,Paintpaint)」。劃矩形:使用的方法為「drawRect(floatleft,floattop,floatright,floatbottom,Paintpaint)」。劃圓角矩形:使用的方法為「drawRoundRect(RectFrect,floatrx,floatry,Paintpaint)」劃?。菏褂玫姆椒椤竏rawArc(RectFoval,CanvasDrawTest範(fàn)例在Canvas上繪製一些不同顏色的幾何圖形。在專案中增加一個(gè)View的延伸類別,命名為「DrawImage.java」。在這自建類別中用Paint陣列設(shè)定了6組畫刷,分別用以繪製6種幾何圖形。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。CanvasDrawTest範(fàn)例三、路徑與繪製文字路徑是一條曲線,封閉或開放都可以,Canvas類別以drawPath(Pathpath,Paintpaint)方法繪製路徑。path:路徑的軌跡;對(duì)開放路徑是由不同線段組成,對(duì)封閉路徑則可以是一個(gè)形狀(如圓、矩形等)。Paint:繪圖時(shí)使用的畫刷。畫刷也提供「setPathEffect(PathEffecteffect)」方法,可用以設(shè)定路徑的特殊效果,設(shè)定內(nèi)容如下:CornerPathEffect:設(shè)定線段與線段之間的連接角為指定半徑的圓角,建構(gòu)函式定義為CornerPathEffect(floatradius)。三、路徑與繪製文字路徑是一條曲線,封閉或開放都可以,CanvDashPathEffect:設(shè)定構(gòu)成路徑的線段是以破折號(hào)構(gòu)成。PathDashPathEffect:類似DashPathEffect,但破折號(hào)是以指定形狀建立。ComposePathEffect:作用是先應(yīng)用內(nèi)部的效果(參數(shù)2),再用外部效果(參數(shù)1)。null:不設(shè)定任何特效。Canvas對(duì)文字提供3組方法,說明如下:drawText():從指定位置劃出文字,執(zhí)行此方法需提供要?jiǎng)澋奈淖帧㈤_始劃的位置以及畫刷等參數(shù)。DashPathEffect:設(shè)定構(gòu)成路徑的線段是以破折號(hào)構(gòu)rawTextOnPath():沿指定的路徑劃出文字內(nèi)容,執(zhí)行此方法需提供要?jiǎng)澋奈淖?、依循的路徑、指定從距離路徑起點(diǎn)水平位置開始劃、設(shè)定文字與路徑的垂直偏移量以及畫刷等參數(shù),也可以指定只劃文字的部份內(nèi)容。drawPosText():這方法是以指定文字內(nèi)容每一個(gè)字(中文字或英文字母)的位置,將文字顯示在Canvas上,執(zhí)行時(shí)需要提供要?jiǎng)澋奈淖?、含每個(gè)字(或英文字母)座標(biāo)的陣列以及畫刷等參數(shù),也可以指定只劃文字的部份內(nèi)容。rawTextOnPath():沿指定的路徑劃出文字內(nèi)容,執(zhí)DrawTextTest範(fàn)例在Canvas上劃出4組文字,第1組只設(shè)定文字大小與顏色;第2組除了文字大小與顏色外,還設(shè)定了文字傾斜效果;第3組使用第1組的畫刷,但設(shè)定文字沿指定路徑描繪;第4組也是使用第1組的畫刷,但指定了文字描繪時(shí)每一個(gè)字的座標(biāo)位置。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。DrawTextTest範(fàn)例四、點(diǎn)陣圖繪製Canvas也能將現(xiàn)成的點(diǎn)陣圖影像檔繪到視圖中。要繪製現(xiàn)成的點(diǎn)陣圖影像檔,最簡(jiǎn)單的方法就是透過「Drawable」類別取得影像檔資源,然後用此類別的「draw()」方法將點(diǎn)陣圖劃在Canvas上。在繪製之前,必須呼叫「setBound(Rect)」方法,以一個(gè)矩形區(qū)域告訴Drawable物件要繪製的位置與大小。四、點(diǎn)陣圖繪製Canvas也能將現(xiàn)成的點(diǎn)陣圖影像檔繪到視圖中另一種作法是透過「Bitmap」與「BitmapFactory」類別,這種作法是先用「InputStream」物件取得要繪製點(diǎn)陣圖的資源,然後借助BitmapFactory類別的「decodeStream()」方法將存有點(diǎn)陣圖資源的輸入串流解碼為Bitmap物件,最後再用Canvas的「drawBitmap()」方法繪出點(diǎn)陣圖。DrawBitmapTest範(fàn)例同時(shí)使用Drawable與Bitmap在Canvas上繪出g6.jpg與g5.jpg影像檔。此檔案已事先存至專案「/res/drawable-xhdpi/」目錄。範(fàn)例詳細(xì)內(nèi)容請(qǐng)參考原書。另一種作法是透過「Bitmap」與「BitmapFactor五、2D影像處理2D影像處理是指對(duì)Canvas上繪製的幾何圖形、文字或點(diǎn)陣圖(以下均稱為影像),變更它的性質(zhì)(如透明度)、增加色彩渲染效果、或是改變它的幾何關(guān)係。改變影像透明度影像透明度可以透過畫刷的「setAlpha(int)」方法完成,設(shè)定的值從0(完全透明)到255(完全不透明)。五、2D影像處理2D影像處理是指對(duì)Canvas上繪製的幾何圖為影像增加渲染效果渲染主要是讓原影像和另一個(gè)圖樣(可以是顏色或其他影像)融合而產(chǎn)生的特殊效果。Android提供的渲染方式有以下幾種:BitmapShader:用點(diǎn)陣圖作為渲染的圖樣。publicBitmapShader(Bitmapbitmap,

Shader.TileModetileX,Shader.TileModetileY)LinearGradient:渲染圖樣是沿一條指定線(以線2端的座標(biāo)指定)變化的色彩publicLinearGradient(floatx0,floaty0,floatx1,floaty1,int[]colors,float[]positions,Shader.TileModetile)為影像增加渲染效果RadialGradient:渲染圖樣是以指定中心為起點(diǎn),輻射向外變化的顏色梯度publicRadialGradient(floatx,floaty,floatradius,int[]colors,float[]positions,Shader.TileModetile)SweepGradient:渲染圖樣是以指定中心產(chǎn)生的掃描顏色梯度publicSweepGradient(floatcx,floatcy,int[]colors,float[]positions)ComposeShader:從指定的2個(gè)渲染器建立組合渲染器publicComposeShader(ShadershaderA,

ShadershaderB,Xfermodemode)或publicComposeShader(ShadershaderA,

ShadershaderB,PorterDuff.Modemode)RadialGradient:渲染圖樣是以指定中心為起點(diǎn),輻使用Matrix改變影像幾何關(guān)係AndroidSDK提供Matrix類別,可以對(duì)影像進(jìn)行變換處理,變換包括有:旋轉(zhuǎn)、縮放、傾斜、平移等,只要透過Matrix實(shí)體類別的方法設(shè)定想要的變換,再將此Matrix實(shí)體類別用Canvas的「setMatrix(Matrixmatrix)」方法設(shè)定給自己,就能完成指定的變換。旋轉(zhuǎn)(Rotate):「publicvoidsetRotate(floatdegrees)」或「publicvoidsetRotate(floatdegrees,floatpx,floatpy)」??s放(Scale):「publicvoidsetScale(floatsx,floatsy)」或「publicvoidsetScale(floatsx,floatsy,floatpx,floatpy)」,以(px,py)為縮放中心,X軸縮放率sx,Y軸縮放率sy。使用Matrix改變影像幾何關(guān)係傾斜(Skew):「publicvoidsetSkew(floatkx,floatky)」或「publicvoidsetSkew(floatkx,floatky,floatpx,floatpy)」,以(px,py)為傾斜中心,X軸傾斜率kx,Y軸傾斜率ky。平移(Translate):「publicvoidsetTranslate(floatdx,floatdy)」,X軸移動(dòng)距離dx,Y軸移動(dòng)距離dy。傾斜(Skew):「publicvoidsetSkew(六、平面動(dòng)畫一般有3種建立平面動(dòng)畫的方式:影格動(dòng)畫(Frameanimation):這是傳統(tǒng)動(dòng)畫產(chǎn)生的方式,藉由播放一系列影像及利用視覺暫留現(xiàn)象,使靜態(tài)影像產(chǎn)生動(dòng)的感覺。補(bǔ)間動(dòng)畫(Tweenanimation):利用提供動(dòng)畫目標(biāo)開始及結(jié)束的屬性值與動(dòng)畫時(shí)間,讓系統(tǒng)自行產(chǎn)生中間的過程,動(dòng)畫的設(shè)定可以透過動(dòng)畫XML定義檔設(shè)定,或是直接用程式控制。動(dòng)態(tài)繪圖:這方式是利用持續(xù)更新Canvas上繪出的圖形(幾何圖形、文字或點(diǎn)陣圖),達(dá)到動(dòng)畫效果。六、平面動(dòng)畫一般有3種建立平面動(dòng)畫的方式:影格動(dòng)畫影格動(dòng)畫可以透過「AnimationDrawable」類別實(shí)現(xiàn),一般設(shè)定步驟如下:將要用以產(chǎn)生動(dòng)畫的影像檔加入專案「/res/drawable-xhdpi/」目錄。設(shè)定活動(dòng)佈局。動(dòng)畫使用的影像清單可以透過XML定義檔設(shè)定,此檔以<animati

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論