Android UI開發專題(二) 之繪圖基礎

來源:互聯網
上載者:User
今天我們繼續介紹Android平台底層繪圖類的相關內容,在Android UI開發專題(一) 之介面設計中我們介紹了有關Android平台資源使用以及Bitmap相關類的操作,接下來將會以執行個體的方式給大家示範各種類的用處以及注意點。今天我們繼續瞭解android.graphics包中比較重要的繪圖類。  一、 android.graphics.Matrix
  有關圖形的變換、縮放等相關操作常用的方法有:
  void reset() // 重設一個matrix對象。
  void set(Matrix src) //複製一個源矩陣,和本類的構造方法 Matrix(Matrix src) 一樣
  boolean isIdentity() //返回這個矩陣是否定義(已經有意義)
  void setRotate(float degrees) //指定一個角度以0,0為座標進行旋轉
  void setRotate(float degrees, float px, float py) //指定一個角度以px,py為座標進行旋轉
  void setScale(float sx, float sy) // 縮放
  void setScale(float sx, float sy, float px, float py) //以座標px,py進行縮放
  void setTranslate(float dx, float dy) //平移
  void setSkew (float kx, float ky, float px, float py) //以座標px,py進行傾斜
  void setSkew (float kx, float ky) //傾斜
  二、android.graphics.NinePatch
  NinePatch是Android平台特有的一種非向量圖形自然展開處理方法,可以協助常規的圖形在展開時不會縮放,執行個體中Android開發網提示大家對於Toast的顯示就是該原理,同時SDK中提供了一個工具名為Draw 9-Patch,有關該工具的使用方法可以參考我們經發布的 Draw 9-Patch使用方法介紹一文。由於該類提供了高品質支援透明的縮放方式,所以圖形格式為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) 均為設定Paint對象的顏色
  void setAntiAlias(boolean aa) //是否消除鋸齒,需要配合void setFlags (Paint.ANTI_ALIAS_FLAG) 來協助消除鋸齒使其邊緣更平滑。
  Shader setShader(Shader shader) //設定陰影,Shader類是一個矩陣對象,如果為NULL將清除陰影。
  void setStyle(Paint.Style style) //設定樣式,一般為 FILL 填充,或者STROKE凹陷效果。
  void setTextSize(float textSize) //設定字型大小
  void setTextAlign(Paint.Align align) //文本對齊
  Typeface setTypeface(Typeface typeface) //設定字型,通過Typeface可以載入Android內部的字型,一般為宋體對於中文,部分ROM可以自己添加比如雅黑等等
  void setUnderlineText(boolean underlineText) //是否設定底線,需要撇和void setFlags (Paint.UNDERLINE_TEXT_FLAG) 方法。
  四、android.graphics.Rect
  Rect我們可以理解為矩形地區,類似的還有Point一個點,Rect類除了表示一個矩形地區位置描述外,android123提示主要可以協助我們計算圖形之間是否碰撞(包含)關係,對於Android遊戲開發比較有用,其主要的成員contains包含了三種重載方法,來判斷內含項目關聯性
  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平台中表示一個地區和Rect不同的是,它表示的是一個不規則的樣子,可以是橢圓、多邊形等等,而Rect僅僅是矩形。同樣Region的boolean contains(int x, int y) 成員可以判斷一個點是否在該地區內
  六、android.graphics.Typeface
  Typeface類是協助描述一個字型對象,在TextView中通過使用setTypeface方法來制定一個輸出文本的字型,其直接構造調用成員create方法可以直接指定一個字型名稱和樣式,比如
  static Typeface create(Typeface family, int style)
  static Typeface create(String familyName, int style)
  同時使用isBold和isItalic方法可以判斷出是否包含粗體或斜體的字型。
  final boolean isBold()
  final boolean isItalic()
  該類的建立方法還有從apk的資源或從一個具體的檔案路徑,其具體方法為
  static Typeface createFromAsset(AssetManager mgr, String path)
  static Typeface createFromFile(File path)
  static Typeface createFromFile(String path)
  有關Android平台的圖形、映像我們在前兩節中已經整理出來,下次我們將首先講述下NinePatch的執行個體應用。

本文轉自www.35java.com

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.