日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Android游戲開(kāi)發(fā)之五:Path路徑類(lèi)Typeface字體類(lèi)

Path路徑類(lèi)

Path 路徑對(duì)于Android 2D繪圖或者說(shuō)Android游戲開(kāi)發(fā)來(lái)說(shuō)是很重要的。理解Path路徑可以想想在Photoshop中使用鋼筆工具繪制路徑的過(guò)程。Path路徑類(lèi)在位 于android.graphics.Path中,Path的構(gòu)造方法比較簡(jiǎn)單,如下:

成都創(chuàng)新互聯(lián)是一家專(zhuān)注于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),磁縣網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:磁縣等地區(qū)。磁縣做網(wǎng)站價(jià)格咨詢(xún):028-86922220

Path cwj=new Path();  //構(gòu)造方法

下面我們畫(huà)一個(gè)封閉的原型路徑,我們使用Path類(lèi)的addCircle方法。

cwj.addCircle(10,10,50,Direction.CW); //參數(shù)一為x軸水平位置,參數(shù)二為y軸垂直位置,第三個(gè)參數(shù)為圓形的半徑,***是繪制的方向,CW為順時(shí)針?lè)较?,而CCW是逆時(shí)針?lè)较颉?/p>

結(jié)合上次提到的Canvas類(lèi)中的繪制方法drawPath和drawTextOnPath,我們繼續(xù)可以在onDraw中加入。

canvas.drawPath(cwj,paintPath); //提示大家這里paintPath為路徑的畫(huà)刷顏色,可以見(jiàn)下文完整的源代碼。

canvas.drawTextOnPath("Android123 - CWJ",cwj,0,15,paintText); //將文字繪制到路徑中去,有關(guān)drawTextOnPath的參數(shù)如下:

方法原型public void drawTextOnPath (String text, Path path, float hOffset, float vOffset, Paint paint) 

參數(shù)說(shuō)明:

text:為需要在路徑上繪制的文字內(nèi)容。

path:將文字繪制到哪個(gè)路徑。 

hOffset:距離路徑開(kāi)始的距離。

vOffset:離路徑的上下高度,這里Android開(kāi)發(fā)網(wǎng)提示大家,該參數(shù)類(lèi)型為float浮點(diǎn)型,除了精度為8位小數(shù)外,可以為正或負(fù),當(dāng)為正時(shí)文字在路徑的圈里面,為負(fù)時(shí)在路徑的圈外面。

paint:***仍然是一個(gè)Paint對(duì)象用于制定Text本文的顏色、字體、大小等屬性。

下面是我們的onDraw方法中如何繪制路徑的演示代碼為:

 
 
  1. @Override   
  2.  protected void onDraw(Canvas canvas) {    
  3.   Paint paintPath=new Paint();    
  4.   Paint paintText=new Paint();    
  5.   paintPath.setColor(Color.Red); //路徑的畫(huà)刷為紅色    
  6.   paintText.setColor(Color.Blue); //路徑上的文字為藍(lán)色    
  7.   Path pathCWJ=new Path();    
  8.   pathCWJ.addCircle(10,10,50,Direction.CW); // 半徑為50px,繪制的方向CW為順時(shí)針    
  9.   canvas.drawPath(pathCWJ,paintPath);    
  10.  canvas.drawTextOnPath("Android123 - CWJ",pathCWJ,0,15,paintText); //在路徑上繪制文字    
  11. }   

有關(guān)路徑類(lèi)常用的方法如下:

void  addArc(RectF oval, float startAngle, float sweepAngle)  //為路徑添加一個(gè)多邊形

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)  //添加一個(gè)區(qū)域

void  addRoundRect(RectF rect, float[] radii, Path.Direction dir)  //添加一個(gè)圓角區(qū)域

boolean  isEmpty()  //判斷路徑是否為空

void  transform(Matrix matrix)  //應(yīng)用矩陣變換

void  transform(Matrix matrix, Path dst)  //應(yīng)用矩陣變換并將結(jié)果放到新的路徑中,即第二個(gè)參數(shù)。

有關(guān)路徑的高級(jí)效果大家可以使用PathEffect類(lèi),有關(guān)路徑的更多實(shí)例將在今后的游戲開(kāi)發(fā)實(shí)戰(zhàn)中講解道。

Typeface字體類(lèi)

平時(shí)我們?cè)赥extView中需要設(shè)置顯示的字體可以通過(guò)TextView中的setTypeface方法來(lái)指定一個(gè)Typeface對(duì)象,因?yàn)锳ndroid的字體類(lèi)比較簡(jiǎn)單,我們列出所有成員方法:

static Typeface  create(Typeface family, int style)  //靜態(tài)方法,參數(shù)一為字體類(lèi)型這里是Typeface的靜態(tài)定義,如宋體,參數(shù)二風(fēng)格,如粗體,斜體

static Typeface  create(String familyName, int style)  //靜態(tài)方法,參數(shù)一為字體名的字符串,參數(shù)二為風(fēng)格同上,這里我們推薦使用上面的方法。

static Typeface  createFromAsset(AssetManager mgr, String path)  //靜態(tài)方法,參數(shù)一為AssetManager對(duì)象,主要用于從APK的assets文件夾中取出字體,參數(shù)二為相對(duì)于Android工程下的 assets文件夾中的外掛字體文件的路徑。

static Typeface  createFromFile(File path)  //靜態(tài)方法,從文件系統(tǒng)構(gòu)造一個(gè)字體,這里參數(shù)可以是sdcard中的某個(gè)字體文件

static Typeface  createFromFile(String path)  //靜態(tài)方法,從指定路徑中構(gòu)造字體

static Typeface  defaultFromStyle(int style) //靜態(tài)方法,返回默認(rèn)的字體風(fēng)格

int  getStyle()  //獲取當(dāng)前字體風(fēng)格

final boolean  isBold()  //判斷當(dāng)前是否為粗體

final boolean  isItalic()  //判斷當(dāng)前風(fēng)格是否為斜體

本類(lèi)的常量靜態(tài)定義,首先為字體類(lèi)型名稱(chēng):

Typeface DEFAULT 

Typeface DEFAULT_BOLD

Typeface MONOSPACE

Typeface SANS_SERIF

Typeface SERIF

字體風(fēng)格名稱(chēng):

int BOLD  

int BOLD_ITALIC  

int ITALIC

int NORMAL

我們將在下節(jié)具體講解onDraw以及什么時(shí)候會(huì)觸發(fā)繪制方法,來(lái)實(shí)現(xiàn)我們自定義或子類(lèi)化控件。


文章題目:Android游戲開(kāi)發(fā)之五:Path路徑類(lèi)Typeface字體類(lèi)
轉(zhuǎn)載注明:http://m.5511xx.com/article/djhgjgi.html