Android中使用圖形處理引擎,2D部分是android SDK內(nèi)部自己提供,3D部分是用Open GL ES 1.0。
大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他們提供了圖形處理相關的: Canvas、ColorFilter、Point(點)和RetcF(矩形)等,還有一些動畫相關的:AnimationDrawable、 BitmapDrawable和TransitionDrawable等。以圖形處理來說,我們最常用到的就是在一個View上畫一些圖片、形狀或者自定義的文本內(nèi)容,這里我們都是使用Canvas來實現(xiàn)的。你可以獲取View中的Canvas對象,繪制一些自定義形狀,然后調(diào)用View. invalidate方法讓View重新刷新,然后繪制一個新的形狀,這樣達到2D動畫效果。下面我們就主要來了解下Canvas的使用方法。
Canvas的用法##
Canvas對象的獲取方式有兩種:一種我們通過重寫View.onDraw方法,View中的Canvas對象會被當做參數(shù)傳遞過來,我們操作這個Canvas,效果會直接反應在View中。另一種就是當你想創(chuàng)建一個Canvas對象時使用的方法:
<pre><code>
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
</code></pre>
Canvas的方法使用介紹##
畫筆屬性設置好之后,還需要將圖像繪制到畫布上。Canvas類可以用來實現(xiàn)各種圖形的繪制工作,如繪制直線、矩形、圓等等。Canvas繪制常用圖形的方法如下:
繪制直線:canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
繪制矩形:canvas.drawRect(float left, float top, float right, float bottom, Paint paint);
繪制圓形:canvas.drawCircle(float cx, float cy, float radius, Paint paint);
繪制字符:canvas.drawText(String text, float x, float y, Paint paint);
繪制圖形:canvas.drawBirmap(Bitmap bitmap, float left, float top, Paint paint);
繪制圓弧:drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
oval 橢圓邊界startAngle 起始角度sweepAngle 掃描范圍(度數(shù))
useCenter是否包含橢圓中心paint 畫筆
繪制圓角矩形:drawRoundRect (RectF rect, float rx, float ry, Paint paint)
畫筆設置##
Paint.setStrokeJoin(Join join)設置結合處的樣子,Miter:結合處為銳角, Round:結合處為圓?。築EVEL:結合處為直線。
setStrokeMiter(float miter )是設置筆畫的傾斜度
setARGB(int a, int r, int g, int b) 設置 Paint對象顏色
setAlpha(int a) // 設置alpha不透明度,范圍為0~255**
setAntiAlias(boolean aa) // 設置是否有鋸齒
setColor(int color) // 設置顏色
public Shader setShader (Shader shader)//設置或清除漸變色,傳入null為清除漸變色
setTextScaleX(float scaleX) // 設置文本縮放倍數(shù),1.0f為原始
setTextSize(float textSize) // 設置字體大小
setUnderlineText(booleanunderlineText) // 設置下劃線
關于漸變色##
漸變色Shader