Android Canvas繪圖詳解

Android Canvas繪圖詳解

ID:39464498

大?。?48.50 KB

頁數(shù):18頁

時間:2019-07-03

Android Canvas繪圖詳解_第1頁
Android Canvas繪圖詳解_第2頁
Android Canvas繪圖詳解_第3頁
Android Canvas繪圖詳解_第4頁
Android Canvas繪圖詳解_第5頁
資源描述:

《Android Canvas繪圖詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、AndroidCanvas繪圖詳解(圖文)摘要Android中使用圖形處理引擎,2D部分是androidSDK內(nèi)部自己提供,3D部分是用OpenGLES1.0。今天我們主要要了解的是2D相關(guān)的,如果你想看3D的話那么可以跳過這篇文章。大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他們提供了圖Android中使用圖形處理引擎,2D部分是androidSDK內(nèi)部自己提供,3D部分是用OpenGLES1.0。今天我們主要要了解的是2D相關(guān)的,如果你想看3D的話那么可以跳過這篇文章。大部分2D使用的

2、api都在android.graphics和android.graphics.drawable包中。他們提供了圖形處理相關(guān)的:Canvas、ColorFilter、Point(點(diǎn))和RetcF(矩形)等,還有一些動畫相關(guān)的:AnimationDrawable、BitmapDrawable和TransitionDrawable等。以圖形處理來說,我們最常用到的就是在一個View上畫一些圖片、形狀或者自定義的文本內(nèi)容,這里我們都是使用Canvas來實(shí)現(xiàn)的。你可以獲取View中的Canvas對象,繪制一些自定義形狀,然后調(diào)用View.invalidate方法讓Vie

3、w重新刷新,然后繪制一個新的形狀,這樣達(dá)到2D動畫效果。下面我們就主要來了解下Canvas的使用方法。Canvas對象的獲取方式有兩種:一種我們通過重寫View.onDraw方法,View中的Canvas對象會被當(dāng)做參數(shù)傳遞過來,我們操作這個Canvas,效果會直接反應(yīng)在View中。另一種就是當(dāng)你想創(chuàng)建一個Canvas對象時使用的方法:12Bitmapb=Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);Canvasc=newCanvas(b);上面代碼創(chuàng)建了一個尺寸是100*100的Bitmap,使用它

4、作為Canvas操作的對象,這時候的Canvas就是使用創(chuàng)建的方式。當(dāng)你使用創(chuàng)建的Canvas在bitmap上執(zhí)行繪制方法后,你還可以將繪制的結(jié)果提交給另外一個Canvas,這樣就可以達(dá)到兩個Canvas協(xié)作完成的效果,簡化邏輯。但是androidSDK建議使用View.onDraw參數(shù)里提供的Canvas就好,沒必要自己創(chuàng)建一個新的Canvas對象。接下來我們看看Canvas提供我們哪些繪制圖形的方法。我們創(chuàng)建一個自定義View對象,使用onDraw方法提供的Canvas進(jìn)行繪制圖形。CanvasDemoActivity.java:123456package

5、com.android777.demo.uicontroller.graphics;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;187891011121314151617181920212223242526272829303132333435363738394041424344454647importandroid.graphics.Paint;importandroid.o

6、s.Bundle;importandroid.view.View;publicclassCanvasDemoActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(newCustomView1(this));}/***使用內(nèi)部類自定義一個簡單的View*@authorAdministrator**/classCustomView1extendsView{Pa

7、intpaint;publicCustomView1(Contextcontext){super(context);paint=newPaint();//設(shè)置一個筆刷大小是3的黃色的畫筆paint.setColor(Color.YELLOW);paint.setStrokeJoin(Paint.Join.ROUND);paint.setStrokeCap(Paint.Cap.ROUND);paint.setStrokeWidth(3);}//在這里我們將測試canvas提供的繪制圖形方法@OverrideprotectedvoidonDraw(Canvasca

8、nvas){}}}18執(zhí)行結(jié)果是一片黑

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。