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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Andriod繪圖的基礎(chǔ)知識

1.位圖的配置

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、濟(jì)南網(wǎng)站維護(hù)、網(wǎng)站推廣。

ALPHA_9:用于作為Alpha蒙版的位圖,只為Alph通道分配8位。沒有其他顏色。

ARGB_4444:為每個顏色通道分配4位,包括Alpha通道。允許表示擁有16個Alpha值的4096種不同顏色。

ARGB_8888:為每個顏色通道分配8位,包括Alpha通道。允許表示擁有256個Alpha值的1670萬種不同的顏色。

RGB_565:5位用于紅色通道,6位用于綠色通道,以及5位用于藍(lán)色通道(沒有Alpha通道)允許有65535種不同的顏色。這個設(shè)置幾乎與ARGB_8888具有相同的高質(zhì)量,但占用更少的內(nèi)存空間。

2.創(chuàng)建Canvas對象

如果想創(chuàng)建一幅位圖對象,并對其進(jìn)行繪制,那么我們可以對它創(chuàng)建Canvas對象,例如

 
 
  1. Bitmap bitmap = Bitmap.createBitmap((int) getWindowManager()  
  2.             .getDefaultDisplay().getWidth(), (int) getWindowManager()  
  3.             .getDefaultDisplay().getHeight(), Bitmap.Config.ARGB_8888);  
  4. Canvas canvas = new Canvas(bitmap); 

3.Paint對象的使用

      (1)顏色:可以通過Paint對象上的setColor方法,并傳入一個Color對象。Color類定義了一系列顏色,以32位整數(shù)常量表示:

Color.BLACK\Color.BLUE\Color.RED

還可以通過Color.argb靜態(tài)方法構(gòu)造一個特定的顏色,形如:

 
 
  1. int mycolor=Color.argb(255,128,64,32)  

實際上,還可以直接使用Paint對象的方法setARGB來指定顏色:

 
 
  1. paint.setARGB(255,128,64,32);  

       (2)樣式:當(dāng)通過setStyle方法定義Paint對象樣式時,需要明確是否填充繪制的形狀或者僅僅是描畫輪廓??赡艿臉邮蕉x為Paint.Style類的常量。

Paint.Style.STROKE:僅繪制形狀的輪廓

Paint.Style.FILL:僅填充形狀

Paint.Style.FILL_AND_STROKE:填充并繪制形狀的輪廓

       (3)筆畫的寬度:可以使用Paint對象上的setStrokeWidth方法指定。

4.繪制形狀

       (1)點:可以使用Canvas對象的drawPoint方法

       (2)直線:可以使用Canvas對象的drawLine方法

       (3)矩形:可以使用Canvas獨享的drawRect方法,不過該方法有兩種重載形式,***種是最簡單的直接傳入矩形的 leftx,topy,rightx,bottomy,另一種是通過傳入RectF(RectF類使用浮點值分別表示 leftx,topy,rightx,bottomy,以此來定一個矩形)。

 
 
  1. RectF rectangle=new RectF(leftx,topy,rightx,bottomy);  
  2. canvas.drawRect(rectangle,paint); 

       (4)橢圓:與使用RectF對象繪制矩形的方式相同,此時RectF對象定義橢圓的邊界,即在矩形的內(nèi)部繪制橢圓。

 
 
  1. RectF ovalBounds=new RectF(leftx,topy,rightx,bottomy);  
  2. canvas.drawOval(ovalBounds,paint);  

       (5)圓:可以使用Canvas對象的drawCircle方法

       (6)路徑:路徑是一系列可用來創(chuàng)建任意形狀的直線。為了繪制一個路徑,首先必須構(gòu)造一個Path對象。Path對象可以調(diào)用任意次數(shù),通過使用moveTo告訴它無須繪制而直接移動到某個點,或者使用lineTo繪制一條直線到某個點,等等方法。

 
 
  1. Paint paint=new Paint();  
  2. Path p=new Path();  
  3. p.moveTo(20,20);//如果不moveTo,則默認(rèn)在(0,0)處開始繪制  
  4. p.lineTo(100,200);  
  5. p.lineTo(200,100);  
  6. canvas.drawPath(p,paint);  

5.繪制文本
我們可以通過Canvas對象的drawText方法來繪制文本,同時可以配合Paint類的setTextSize來設(shè)置文本大小。

       (1)內(nèi)置字體:Paint類提供了setTypeface方法并傳入一個Typeface對象來指定應(yīng)該使用哪種字體。

Typeface類定義了許多常量來表示Android系統(tǒng)中附帶的字體,例 如:Typeface.MONOSPACE\Typeface.SANS_SERIF\Typeface.SERIF\Typeface.DEFAULT \Typeface.DEFAULT_BOLD。

 
 
  1. paint.setTypeface(Typeface.DEFAULT_BOLD);  

       (2)字體樣式:與內(nèi)置字體一起,Typeface類還定義了一系列的樣式常量。通過Typeface中的create方法可以將這些樣式應(yīng)用于修改某個內(nèi)置字體。這個方法的返回值是一個新的Typeface對象。Typeface中的樣式列表:

Typeface.BOLD\Typeface.ITALIC\Typeface.NORMAL\Typeface.BOLD_ITALIC

Typeface serif_italic=Typeface.create(Typeface.SERIF,Typeface.ITALIC);

paint.setTypeface(serif_italic);

       (3)外部字體:Android應(yīng)用程序不限定只能使用內(nèi)置字體。其支持從任何TrueType字體文件創(chuàng)建Typeface對象。TrueType字體是一種標(biāo)準(zhǔn)字體,并且可以在各種平臺上使用。

一個與Android內(nèi)置字體完全不同的字體是由Claude Pelletier創(chuàng)建的Chopin Script字體。它面向公共領(lǐng)域,可以通過各種來源免費下載,如fontspace.com等等。

為了使用該字體,可以下載它并將.ttf文件放入到項目中的asset文件夾中。Typeface.createFromAsset方法接受一個 AssetManager對象以及文件的名稱作為參數(shù),其中AssetManager對象可以通過從Context調(diào)用getAssets獲得。該方法返 回一個Typeface對象,可以將它傳遞給paint.setTypeface方法。

 
 
  1. Typeface chops=Typeface.createFromAsset(getAssets(),"ChopinScript.ttf");  
  2. paint.setTypeface(chops);  

       (4)路徑上的文本:使用的Canvas對象的drawTextOnPath方法


當(dāng)前文章:Andriod繪圖的基礎(chǔ)知識
路徑分享:http://www.5511xx.com/article/cdcpsjh.html