編輯:高級開發
Path cwj=new Path(); //構造方法
下面我們畫一個封閉的原型路徑,我們使用Path類的addCircle方法
cwj.addCircle(10,10,50,Direction.CW); //參數一為x軸水平位置,參數二為y軸垂直位置,第三個參數為圓形的半徑,最後是繪制的方向,CW為順時針方向,而CCW是逆時針方向。
結合android上次提到的Canvas類中的繪制方法drawPath和drawTextOnPath,我們繼續可以在onDraw中加入。
canvas.drawPath(cwj,paintPath); //android123提示大家這裡paintPath為路徑的畫刷顏色,可以見下文完整的源代碼。
canvas.drawTextOnPath("android123 - CWJ",cwj,0,15,paintText); //將文字繪制到路徑中去,有關drawTextOnPath的參數如下:
方法原型public void drawTextOnPath (String text, Path path, float hOffset, float vOffset, Paint paint)
參數列表
text 為需要在路徑上繪制的文字內容。
path 將文字繪制到哪個路徑。
hOffset 距離路徑開始的距離
vOffset 離路徑的上下高度,這裡android開發網提示大家,該參數類型為float浮點型,除了精度為8位小數外,可以為正或負,當為正時文字在路徑的圈裡面,為負時在路徑的圈外面。
paint 最後仍然是一個Paint對象用於制定Text本文的顏色、字體、大小等屬性。
下面是我們的onDraw方法中如何繪制路徑的演示代碼為:
@Override
protected void onDraw(Canvas canvas) {
Paint paintPath=new Paint();
Paint paintText=new Paint();
paintPath.setColor(Color.Red); //路徑的畫刷為紅色
paintText.setColor(Color.Blue); //路徑上的文字為藍色
Path pathCWJ=new Path();
pathCWJ.addCircle(10,10,50,Direction.CW); // 半徑為50px,繪制的方向CW為順時針
canvas.drawPath(pathCWJ,paintPath);
canvas.drawTextOnPath("android123 - CWJ",pathCWJ,0,15,paintText); //在路徑上繪制文字
}
有關路徑類常用的方法如下:
void addArc(RectF oval, float startAngle, float sweepAngle) //為路徑添加一個多邊形
void addCircle(float x, float y, float radius, Path.Direction dir) //給path添加圓圈
void addOval(RectF oval, Path.Direction dir) //添加橢圓形
void addRect(RectF rect, Path.Direction dir) //添加一個區域
void addRoundRect(RectF rect, float[] radii, Path.Direction dir) //添加一個圓角區域
boolean isEmpty() //判斷路徑是否為空
void transform(Matrix matrix) //應用矩陣變換
void transform(Matrix matrix, Path dst) //應用矩陣變換並將結果放到新的路徑中,即第二個參數。
有關路徑的高級效果大家可以使用PathEffect類,有關路徑的更多實例android123將在今後的游戲開發實戰中講解道。
Typeface字體類
平時我們在TextVIEw中需要設置顯示的字體可以通過TextVIEw中的setTypeface方法來指定一個Typeface對象,因為android的字體類比較簡單,我們列出所有成員方法
static Typeface create(Typeface family, int style) //靜態方法,參數一為字體類型這裡是Typeface的靜態定義,如宋體,參數二風格,如粗體,斜體
static Typeface create(String familyName, int style) //靜態方法,參數一為字體名的字符串,參數二為風格同上,這裡我們推薦使用上面的方法。
static Typeface createFromAsset(AssetManager mgr, String path) //靜態方法,參數一為AssetManager對象,主要用於從APK的assets文件夾中取出字體,參數二為相對於android工程下的assets文件夾中的外掛字體文件的路徑。
static Typeface createFromFile(File path) //靜態方法,從文件系統構造一個字體,這裡參數可以是sdcard中的某個字體文件
static Typeface createFromFile(String path) //靜態方法,從指定路徑中構造字體
static Typeface defaultFromStyle(int style) //靜態方法,返回默認的字體風格
int getStyle() //獲取當前字體風格
final boolean isBold() //判斷當前是否為粗體
final boolean isItalic() //判斷當前風格是否為斜體
本類的常量靜態定義,首先為字體類型名稱
Typeface DEFAULT
Typeface DEFAULT_BOLD
Typeface MONOSPACE
Typeface SANS_SERIF
Typeface SERIF
字體風格名稱
int BOLD
int BOLD_ITALIC
int ITALIC
int NORMAL
明天我們將在 android游戲開發之旅六 自定義VIEw 一文中具體講解onDraw以及什麼時候會觸發繪制方法,來實現我們自定義或子類化控件。
Google正式推出了android 2.0系統的SDK(軟件開發套件,開發人員調試系統所用),這將使現在日漸風靡的GPhone變得越來越好用,這也大大的方便了用戶的使
android設計平台是2008年9月22日,由美國運營商T-MobileUSA在紐約正式發布第一款Google手機,這也拉開了谷歌Android手機的序幕,從andr
Google android在推出之後以其開放性而深受好評,應用數量和市場占有率增長幅度明顯。Google android會使Java領域支離破碎?細看Google a
這一段時間,隨著Moto的一系列手機引爆了android市場,移動市場所有的目光都集中在 Android這顆新星之上。一時之間,無論芯片企業、設備企業、軟件企業還是互