【讀書筆記《Android遊戲編程之從零開始》】13.遊戲開發基礎(Paint 畫筆)

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   ar   color   os   sp   

1.Paint畫筆

Panit(畫筆)是繪圖額輔助類,其類中包含文字和位元影像額樣式、顏色等屬性資訊。Paint 的常用方法如下:

 

setAntiAlias(boolean aa)

作用:設定畫筆是否無鋸齒

參數:true 表示無鋸齒,false 表示有鋸齒,預設為 false 。

 

setAlpha(int a)

作用:設定畫筆的透明度

參數:透明值

 

setTextAlign(Paint.Align align)

作用:設定繪製文本的錨點

參數:Paint.Align 類中的常量

 

measureText(String text)

作用:擷取常值內容的寬度

參數:常值內容

 

setStyle(Style style)

作用:設定畫筆樣式

參數:樣式執行個體

 

setColor(int color)

作用:設定畫筆顏色

參數:色值

 

setStrokeWidth(float width)

作用:設定畫筆額粗細程度

參數:畫筆粗細值

 

setTextSize(float textSize)

作用:設定畫筆在繪製文本時,文本字型的尺寸

參數:尺寸值

 

setARGB(int a,int r,int g,int b)

作用:設定畫筆的ARGB分量

第一個參數:畫筆透明度分量

第二個參數:畫筆紅色分量

第三個參數:畫筆綠色分量

第四個參數:畫筆藍色分量

 

2.Paint 畫筆執行個體

如下:

步驟:建立項目“PanitProject”,遊戲架構為MySurfaceView 遊戲架構,具體步驟參照“11.遊戲開發基礎(SurfaceView 遊戲架構、View 和 SurfaceView 的區別)”。

主要繪圖方法myDraw()修改如下:

 public void myDraw()    {        try {            canvas =sfh.lockCanvas();            if(canvas!=null)            {               canvas.drawColor(Color.WHITE);                //--設定畫筆無鋸齒                Paint paint1 = new Paint();                canvas.drawCircle(40,30,20,paint1);                paint1.setAntiAlias(true);                canvas.drawCircle(100,30,20,paint1);                //--設定畫筆的透明度                canvas.drawText("無透明度",100,70,new Paint());                Paint paint2 = new Paint();                paint2.setAlpha(0x77);                canvas.drawText("半透明度",20,70,new Paint());                //--設定繪製文本的錨點                canvas.drawText("錨點",20,90,new Paint());                Paint paint3 = new Paint();                //設定以文本的中心點繪製                paint3.setTextAlign(Paint.Align.CENTER);                canvas.drawText("錨點",20,105,paint3);                //--擷取文本的長度                Paint paint4 = new Paint();                float len = paint4.measureText("文本寬度:");                canvas.drawText("文本長度:"+len,20,130,new Paint());                //--設定畫筆樣式                canvas.drawRect(new Rect(20,140,40,160),new Paint());                Paint paint5 = new Paint();                //設定畫筆不填充                paint5.setStyle(Paint.Style.STROKE);                canvas.drawRect(new Rect(60,140,80,160),paint5);                //--設定畫筆顏色                Paint paint6 = new Paint();                paint6.setColor(Color.BLUE);                canvas.drawText("藍色",30,180,paint6);                //--設定畫筆的粗細程度                canvas.drawLine(20,200,70,200,new Paint());                Paint paint7 = new Paint();                paint7.setStrokeWidth(7);                canvas.drawLine(20,220,70,220,paint7);                //--設定畫筆繪製文本的字型粗細                Paint paint8 = new Paint();                paint8.setTextSize(20);                canvas.drawText("文字尺寸",20,260,paint8);                //--設定畫筆的ARGB 分量                Paint paint9 = new Paint();                paint9.setARGB(0x77,0xff,0x00,0x00);                canvas.drawText("紅色半透明",20,290,paint9);            }        }        catch(Exception ex){        }finally {            if(canvas!=null)            {                sfh.unlockCanvasAndPost(canvas);            }        }    }

 

Paint 畫筆類提供了一個消除鋸齒的函數,其實 Canvas 畫布也提供額繪圖消除鋸齒的函數,如下所示:

Canvas.setDrawFilter(DrawFilter filter);

作用:為畫布設定繪圖消除鋸齒

參數:繪圖過濾器執行個體

執行個體化一個DrawFilter 類的對象,代碼如下所示:

PaintFlagsDrawFilter pfd = new PaintFlagsDrawFilter(0,Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);

 

【讀書筆記《Android遊戲編程之從零開始》】13.遊戲開發基礎(Paint 畫筆)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.