1. 程式人生 > >Android 畫布 Canvas 基本操作API

Android 畫布 Canvas 基本操作API

首先是構造方法,Canvas的構造方法有兩種:

Canvas(): 建立一個空的畫布,可以使用setBitmap()方法來設定繪製具體的畫布。

Canvas(Bitmap bitmap): 以bitmap物件建立一個畫布,將內容都繪製在bitmap上,因此bitmap不得為null。

基本操作:

  • drawRect(RectF rect, Paint paint) :繪製區域,引數一為RectF一個區域
  • drawPath(Path path, Paint paint) :繪製一個路徑,引數一為Path路徑物件
  • drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) : 貼圖,引數一就是我們常規的Bitmap物件,引數二是源區域(這裡是bitmap), 引數三是目標區域(應該在canvas的位置和大小),引數四是Paint畫刷物件, 因為用到了縮放和拉伸的可能,當原始Rect不等於目標Rect時效能將會有大幅損失。
  • drawLine(float startX, float startY, float stopX, float stopY, Paintpaint) : 畫線,引數一起始點的x軸位置,引數二起始點的y軸位置,引數三終點的x軸水平位置, 引數四y軸垂直位置,最後一個引數為Paint 畫刷物件。
  • drawPoint(float x, float y, Paint paint): 畫點,引數一水平x軸,引數二垂直y軸,第三個引數為Paint物件。
  • drawText(String text, float x, floaty, Paint paint) : 渲染文字,Canvas類除了上面的還可以描繪文字,引數一是String型別的文字, 引數二x軸,引數三y軸,引數四是Paint物件。
  • drawOval(RectF oval, Paint paint):畫橢圓,引數一是掃描區域,引數二為paint物件;
  • drawCircle(float cx, float cy, float radius,Paint paint): 繪製圓,引數一是中心點的x軸,引數二是中心點的y軸,引數三是半徑,引數四是paint物件;
  • drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint): 畫弧,引數一是RectF物件,一個矩形區域橢圓形的界限用於定義在形狀、大小、電弧,引數二是起始角 (度)在電弧的開始,引數三掃描角(度)開始順時針測量的,引數四是如果這是真的話,包括橢圓中心的電 弧,並關閉它,如果它是假這將是一個弧線,引數五是Paint物件;
  • .clipXXX()方法族:在當前的畫圖區域裁剪(clip)出一個新的畫圖區域,這個畫圖區域就是canvas 物件的當前畫圖區域了。比如:clipRect(new Rect()),那麼該矩形區域就是canvas的當前畫圖區域
  • save()restore()方法: save( ):用來儲存Canvas的狀態。save之後,可以呼叫Canvas的平移、放縮、旋轉、錯切、裁剪等操作! restore():用來恢復Canvas之前儲存的狀態。防止save後對Canvas執行的操作對後續的繪製有影響。 save()和restore()要配對使用(restore可以比save少,但不能多),若restore呼叫次數比save多,會報錯
  • translate(float dx, float dy): 平移,將畫布的座標原點向左右方向移動x,向上下方向移動y.canvas的預設位置是在(0,0)
  • scale(float sx, float sy):擴大,x為水平方向的放大倍數,y為豎直方向的放大倍數
  • rotate(float degrees):旋轉,angle指旋轉的角度,順時針旋轉
  •