今天我們繼續(xù)介紹Android平臺(tái)底層繪圖類的相關(guān)內(nèi)容,在Android UI開發(fā)專題(一) 之界面設(shè)計(jì)中我們介紹了有關(guān)Android平臺(tái)資源使用以及Bitmap相關(guān)類的操作,接下來將會(huì)以實(shí)例的方式給大家演示各種類的用處以及注意點(diǎn)。今天我 們繼續(xù)了解android.graphics包中比較重要的繪圖類。
一、 android.graphics.Matrix 有關(guān)圖形的變換、縮放等相關(guān)操作常用的方法有: void reset() // 重置一個(gè)matrix對(duì)象。 void set(Matrix src) //復(fù)制一個(gè)源矩陣,和本類的構(gòu)造方法 Matrix(Matrix src) 一樣 boolean isIdentity() //返回這個(gè)矩陣是否定義(已經(jīng)有意義) void setRotate(float degrees) //指定一個(gè)角度以0,0為坐標(biāo)進(jìn)行旋轉(zhuǎn) void setRotate(float degrees, float px, float py) //指定一個(gè)角度以px,py為坐標(biāo)進(jìn)行旋轉(zhuǎn) void setScale(float sx, float sy) // 縮放 void setScale(float sx, float sy, float px, float py) //以坐標(biāo)px,py進(jìn)行縮放 void setTranslate(float dx, float dy) //平移 void setSkew (float kx, float ky, float px, float py) //以坐標(biāo)px,py進(jìn)行傾斜 void setSkew (float kx, float ky) //傾斜 二、android.graphics.NinePatch NinePatch是Android平臺(tái)特有的一種非矢量圖形自然拉伸處理方法,可以幫助常規(guī)的圖形在拉伸時(shí)不會(huì)縮放,實(shí)例中Android開發(fā)網(wǎng)提 示大家對(duì)于Toast的顯示就是該原理,同時(shí)SDK中提供了一個(gè)工具名為Draw 9-Patch,有關(guān)該工具的使用方法可以參考我們經(jīng)發(fā)布的 Draw 9-Patch使用方法介紹一文。由于該類提供了高質(zhì)量支持透明的縮放方式,所以圖形格式為PNG,文件命名方式為.9.png 的后綴比如android123.9.png。 三、android.graphics.Paint Paint類我們可以理解為畫筆、畫刷的屬性定義,本類常用的方法如下: void reset() //重置 void setARGB(int a, int r, int g, int b) 或 void setColor(int color) 均為設(shè)置Paint對(duì)象的顏色 void setAntiAlias(boolean aa) //是否抗鋸齒,需要配合void setFlags (Paint.ANTI_ALIAS_FLAG) 來幫助消除鋸齒使其邊緣更平滑。 Shader setShader(Shader shader) //設(shè)置陰影,Shader類是一個(gè)矩陣對(duì)象,如果為NULL將清除陰影。 void setStyle(Paint.Style style) //設(shè)置樣式,一般為 FILL 填充,或者STROKE凹陷效果。 void setTextSize(float textSize) //設(shè)置字體大小 void setTextAlign(Paint.Align align) //文本對(duì)齊方式 Typeface setTypeface(Typeface typeface) //設(shè)置字體,通過Typeface可以加載Android內(nèi)部的字體,一般為宋體對(duì)于中文,部分ROM可以自己添加比如雅黑等等 void setUnderlineText(boolean underlineText) //是否設(shè)置下劃線,需要撇和void setFlags (Paint.UNDERLINE_TEXT_FLAG) 方法。 四、android.graphics.Rect Rect我們可以理解為矩形區(qū)域,類似的還有Point一個(gè)點(diǎn),Rect類除了表示一個(gè)矩形區(qū)域位置描述外,android123提示主要可以幫助我 們計(jì)算圖形之間是否碰撞(包含)關(guān)系,對(duì)于Android游戲開發(fā)比較有用,其主要的成員contains包含了三種重載方法,來判斷包含關(guān)系 boolean contains(int left, int top, int right, int bottom) boolean contains(int x, int y) boolean contains(Rect r) 五、android.graphics.Region Region在Android平臺(tái)中表示一個(gè)區(qū)域和Rect不同的是,它表示的是一個(gè)不規(guī)則的樣子,可以是橢圓、多邊形等等,而Rect僅僅是矩形。同樣Region的boolean contains(int x, int y) 成員可以判斷一個(gè)點(diǎn)是否在該區(qū)域內(nèi) 六、android.graphics.Typeface Typeface類是幫助描述一個(gè)字體對(duì)象,在TextView中通過使用setTypeface方法來制定一個(gè)輸出文本的字體,其直接構(gòu)造調(diào)用成員create方法可以直接指定一個(gè)字體名稱和樣式,比如 static Typeface create(Typeface family, int style) static Typeface create(String familyName, int style) 同時(shí)使用isBold和isItalic方法可以判斷出是否包含粗體或斜體的字型。 final boolean isBold() final boolean isItalic() 該類的創(chuàng)建方法還有從apk的資源或從一個(gè)具體的文件路徑,其具體方法為 static Typeface createFromAsset(AssetManager mgr, String path) static Typeface createFromFile(File path) static Typeface createFromFile(String path) 有關(guān)Android平臺(tái)的圖形、圖像我們?cè)谇皟晒?jié)中已經(jīng)整理出來,下次我們將首先講述下NinePatch的實(shí)例應(yīng)用。 |
|