【AndroidのCanvasに向き合おう】Canvasのメソッド一覧

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

Canvasに向き合おう

Canvasから目を背けていたので、向き合うことにしました。
種類が結構あるのでいくつかの記事に分割することにします。
下記に大まかな分類で記事を書こうと思っていますが、後からいろいろ変わるとおもいます。

Canvasを塗りつぶそう
void drawRGB(int r, int g, int b) canvasを指定したRGBカラーで塗りつぶす。
  • int r:赤色成分を0~255で指定する。
  • int g:緑色成分を0~255で指定する。
  • int b:青色成分を0~255で指定する。
void drawARGB(int a, int r, int g, int b) canvasを指定したARGBカラーで塗りつぶす。
  • int a:透過成分を0~255で指定する。
  • int r:赤色成分を0~255で指定する。
  • int g:緑色成分を0~255で指定する。
  • int b:青色成分を0~255で指定する。
void drawColor(int color) canvasを指定した色数値(#AARRGGBB)が表す色で塗りつぶす。
Colorを使うと簡単に色を指定できます。
  • int color:色数値(#AARRGGBB)
void drawPaint(Paint paint) canvasを指定したPaintの色で塗りつぶします。
  • Paint:Paintのインスタンスに色を設定して指定する。

 

点を描こう
void drawPoint(float x, float y, Paint paint) 指定した座標に点を中心を描画する。
  • float x:点を描画するx座標を左上を原点として指定する。
  • float y:点を描画するy座標を左上を原点として指定する。
  • Paint paint:半径や色、形を指定する。
void drawPoints(float[] pts, Paint paint) 指定した座標配列に点を描画する。
  • float[] pts:点を描画するx,y座標を左上を原点として指定する。
    配列は[x0,y0,x1,y1,x2,y2,…]のように偶数要素(0を含む)にx座標、奇数要素にy座標を指定する。
  • Paint paint:半径や色、形を指定する。
void drawPoints(float[] pts, int offset, int count, Paint paint) 指定した座標配列に点を描画する。
  • float[] pts:点を描画するx,y座標を左上を原点として指定する。
    配列は[x0,y0,x1,y1,x2,y2,…]のように偶数要素(0を含む)にx座標、奇数要素にy座標を指定する。
  • int offset:座標配列内の描画に使う開始要素を指定する。
    ptsの要素数を超える値や負数を指定するとエラーになります。
  • int count:座標配列内の描画に使う開始要素からの要素数を指定する。 offsetとの和がptsの要素数を超える値や負数を指定するとエラーになります。
  • Paint paint:半径や色、形を指定する。

 

線を描こう
void drawLine(float startX, float startY, float stopX, float stopY, Paint paint) 指定した始端座標と終端座標に線を描画する。
  • float startX:線の始端座標のx座標を指定する。
  • float startY:線の始端座標のy座標を指定する。
  • float stopX:線の終端座標のx座標を指定する。
  • float stopY:線の終端座標のy座標を指定する。
  • Paint paint:半径や色、形を指定する。
void drawLines(float[] pts, Paint paint) 指定した座標配列を使い線を描画する。
  • float[] pts:左上を原点として線の描画に使うx,y座標を指定する。
    配列は[start_x0,start_y0,stop_x0,stop_y0,
    start_x1,start_y1,stop_x1,stop_y1,…]のように座標を指定する。
  • Paint paint:半径や色、形を指定する。
void drawLines(float[] pts, int offset, int count, Paint paint) 指定した座標配列を使い線を描画する。
  • float[] pts:左上を原点として線の描画に使うx,y座標を指定する。
    配列は[start_x0,start_y0,stop_x0,stop_y0,
    start_x1,start_y1,stop_x1,stop_y1,…]のように座標を指定する。
  • int offset:座標配列内の描画に使う開始要素を指定する。
    ptsの要素数を超える値や負数を指定するとエラーになります。
  • int count:座標配列内の描画に使う開始要素からの要素数を指定する。 offsetとの和がptsの要素数を超える値や負数を指定するとエラーになります。
  • Paint paint:半径や色、形を指定する。

 

四角や角丸四角を描こう
void drawRect(float left, float top, float right, float bottom, Paint paint) 四角形の左上と右下の座標を指定して描画する。
  • float left:四角形の左上のx座標を指定する。
  • float top:四角形の左上のy座標を指定する。
  • float right:四角形の右下のx座標を指定する。
  • float bottom:四角形の右下のy座標を指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawRect(Rect rect, Paint paint) Rectを使って位置と幅高さを指定し四角形を描画する。
  • Rect rect:四角形の位置、幅・高さを指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawRect(RectF rect, Paint paint) RectFを使って位置と幅高さを指定し四角形を描画する。
  • RectF rect:四角形の位置、幅・高さを指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawRoundRect(float left, float top, float right, float bottom, float rx, float ry, Paint paint) 角丸四角形の左上と右下の座標を指定し、x軸方向の径とy軸方向の径を指定して描画する。
  • float left:四角形の左上のx座標を指定する。
  • float top:四角形の左上のy座標を指定する。
  • float right:四角形の右下のx座標を指定する。
  • float bottom:四角形の右下のy座標を指定する。
  • float rx:角のx軸方向の径を指定する。
  • float ry:角のy軸方向の径を指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawRoundRect(RectF rect, float rx, float ry, Paint paint) RectFを使って位置と幅高さを指定しx軸方向の径とy軸方向の径を指定し角丸四角形を描画する。
  • RectF rect:四角形の位置、幅・高さを指定する。
  • float rx:角のx軸方向の径を指定する。
  • float ry:角のy軸方向の径を指定する。
  • Paint paint:色、塗りつぶし方法を指定する。

 

円・楕円・扇・円弧を描こう
void drawCircle(float cx, float cy, float radius, Paint paint) 中心座標と半径を指定して円を描く
  • float cx:中心座標のx座標を指定する。
  • float cy:中心座標のy座標を指定する。
  • float radius:円の半径を指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawOval(float left, float top, float right, float bottom, Paint paint) 四角形の左上と右下の座標を指定し、その四角形に内接する楕円を描画する。
  • float left:四角形の左上のx座標を指定する。
  • float top:四角形の左上のy座標を指定する。
  • float right:四角形の右下のx座標を指定する。
  • float bottom:四角形の右下のy座標を指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawOval(RectF oval, Paint paint) RectFを使って位置と幅高さを指定し四角形を定義し、その四角形に内接する楕円を描画する。
  • RectF rect:四角形の位置、幅・高さを指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, Paint paint) 四角形の左上と右下の座標を指定し、その四角形に内接する楕円を定義する。
定義した楕円の描画開始角度と描画角度、扇または円弧を指定することで扇、円弧を描画する。
  • float left:四角形の左上のx座標を指定する。
  • float top:四角形の左上のy座標を指定する。
  • float right:四角形の右下のx座標を指定する。
  • float bottom:四角形の右下のy座標を指定する。
  • float startAngle:扇・円弧の描画開始角度を指定する。
    時計の3時を0度として時計周りを正方向とします。
    負数を指定することで反時計回りの角度になります。
    360度を超える値を指定すると360で剰余算をした値に変換されます。
  • float sweepAngle:扇・円弧の描画角度を指定する。
    描画開始角度を0度として時計周りを正方向とします。
    負数を指定することで反時計回りの角度になります。
    360度、-360度を超える値を指定すると360度、-360度に変換されます。
  • boolean useCenter:扇で描画する場合はtrueを指定し、円弧で描画する場合はfalseを指定する。
  • Paint paint:色、塗りつぶし方法を指定する。
void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint) RectFを使って位置と幅高さを指定し四角形を定義し、その四角形に内接する楕円を定義する。
定義した楕円の描画開始角度と描画角度、扇または円弧を指定することで扇、円弧を描画する。
  • RectF rect:四角形の位置、幅・高さを指定する。
  • float startAngle:扇・円弧の描画開始角度を指定する。
    時計の3時を0度として時計周りを正方向とします。
    負数を指定することで反時計回りの角度になります。
    360度を超える値を指定すると360で剰余算をした値に変換されます。
  • float sweepAngle:扇・円弧の描画角度を指定する。
    描画開始角度を0度として時計周りを正方向とします。
    負数を指定することで反時計回りの角度になります。
    360度、-360度を超える値を指定すると360度、-360度に変換されます。
  • boolean useCenter:扇で描画する場合はtrueを指定し、円弧で描画する場合はfalseを指定する。
  • Paint paint:色、塗りつぶし方法を指定する。

 

文字を描こう
void drawText(String text, float x, float y, Paint paint)  座標、Paint、文字列を指定して文字を描画する。
  • String text:表示する文字列を設定する。
  • float x:文字の左端のx座標を設定する。
  • float y:文字の下端のy座標を設定する。
  • Paint paint:色、サイズ、font等を指定する。
void drawText(char[] text, int index, int count, float x, float y, Paint paint) 座標、Paint、文字列を指定して文字を描画する。
  • char[] text:表示する文字列をchar配列で設定する。
  • int index:textの描画開始要素を設定する。
    textの要素数を超える場合や負数を設定するとエラーになります。
  • int count:描画開始要素から描画する個数を設定する。
    indexとcountの和がtextの要素数を超える場合や負数を設定するとエラーになります。
  • float x:文字の左端のx座標を設定する。
  • float y:文字の下端のy座標を設定する。
  • Paint paint:色、サイズ、font等を指定する。
void drawText(String text, int start, int end, float x, float y, Paint paint) 座標、Paint、文字列を指定して文字を描画する。
  • String text:表示する文字列をStringで設定する。
  • int start:textの描画開始要素を設定する。
    textの要素数を超える場合や負数を設定するとエラーになります。
  • int end:textの[end-1]番目を描画終了要素を設定する。
    textの要素数を超える場合や負数、startよりも小さい値を設定するとエラーになります。
  • float x:文字の左端のx座標を設定する。
  • float y:文字の下端のy座標を設定する。
  • Paint paint:色、サイズ、font等を指定する。
void drawText(CharSequence text, int start, int end, float x, float y, Paint paint) 座標、Paint、文字列を指定して文字を描画する。
  • CharSequence text:表示する文字列をCharSequenceで設定する。
  • int start:textの描画開始要素を設定する。
    textの要素数を超える場合や負数を設定するとエラーになります。
  • int end:textの[end-1]番目を描画終了要素を設定する。
    textの要素数を超える場合や負数、startよりも小さい値を設定するとエラーになります。
  • float x:文字の左端のx座標を設定する。
  • float y:文字の下端のy座標を設定する。
  • Paint paint:色、サイズ、font等を指定する。
void drawPosText(String text, float[] pos, Paint paint) 座標、Paint、文字列を指定して文字を描画する。
API level 16で非推奨になりました。
  • String text:表示する文字列をStringで設定する。
  • float[] pos:文字の下端を座標配列を使って設定する。
    String#length*2未満の場合はエラーが発生します。
  • Paint paint:色、サイズ、font等を指定する。
void drawPosText(char[] text, int index, int count, float[] pos, Paint paint) 座標、Paint、char配列を指定して文字を描画する。
API level 16で非推奨になりました。
  • char[] text:表示する文字列をchar配列で設定する。
  • int index:textの描画開始要素を設定する。
    textの要素数を超える場合や負数を設定するとエラーになります。
  • int count:描画開始要素から描画する個数を設定する。
    indexとcountの和がtextの要素数を超える場合や負数を設定するとエラーになります。
  • float[] pos:文字の下端を座標配列を使って設定する。
    count*2未満の場合はエラーが発生します。
  • Paint paint:色、サイズ、font等を指定する。
void drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint) Path、Paint、文字列を指定して文字を描画する。
描画開始位置はPathの始端からhOffsetの位置になります。
文字の描画時の長さ(hOffsetを含む)がPathの長さを超えてしまうと終端にすべて描画されます。
  • String text:表示する文字列をStringで設定する。
  • Path path:配置する位置をPathで指定する。
  • float hOffset:Pathの始端からの位置を指定する。
  • float vOffset:描画位置をPathに対して上下を指定する。
    正数は上側、負数は下側に描画位置をずらします。
  • Paint paint:色、サイズ、font等を指定する。
void drawTextOnPath(char[] text, int index, int count, Path path, float hOffset, float vOffset, Paint paint) Path、Paint、char配列を指定して文字を描画する。
描画開始位置はPathの始端からhOffsetの位置になります。
文字の描画時の長さ(hOffsetを含む)がPathの長さを超えてしまうと終端にすべて描画されます。
  • char[] text:表示する文字列をchar配列で設定する。
  • int index:textの描画開始要素を設定する。
    textの要素数を超える場合や負数を設定するとエラーになります。
  • int count:描画開始要素から描画する個数を設定する。
    indexとcountの和がtextの要素数を超える場合や負数を設定するとエラーになります。
  • Path path:配置する位置をPathで指定する。
  • float hOffset:Pathの始端からの位置を指定する。
  • float vOffset:描画位置をPathに対して上下を指定する。
    正数は上側、負数は下側に描画位置をずらします。
  • Paint paint:色、サイズ、font等を指定する。

 

画像を描こう
void drawBitmap(Bitmap bitmap, float left, float top, Paint paint) 画像の左上を指定して画像を描画する。
  • Bitmap bitmap:Canvasに描画する画像
  • float left:画像を描画する左端の位置を指定する。
  • float top:画像を描画する上端の位置を指定する。
  • Paint paint:色、サイズ、font等を指定する。
void drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) Bitmapから描画する範囲を指定し、Canvas上に描画する。
  • Bitmap bitmap:Canvasに描画する画像
  • Rect src:Bitmapから描画する範囲を四角形で指定する。
  • Rect dst:Canvas上に描画する範囲を指定する。
  • Paint paint:nullを指定する。
void drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint) Bitmapから描画する範囲を指定し、Canvas上に描画する。
void drawBitmap(int[] colors, int offset, int stride, int x, int y, int width, int height, boolean hasAlpha, Paint paint) 色配列を指定し、Canvas上に描画する。
API level 21で非推奨になりました。
  • int[] colors:描画する色配列、一要素が1ピクセルになります。
  • int offset:colorsの開始要素を指定する。
  • int stride:colorsの中で一行に何個の要素が使われるかを指定する。
    widthよりも大きい値を指定する必要があります。
  • int x:color配列の描画開始x座標を指定する。
  • int y:color配列の描画開始y座標を指定する。
  • int width:color配列の描画する幅を指定する。
  • int height:color配列の描画する高さを指定する。
  • boolean hasAlpha:color配列の値がalpha値を持つかを指定する。
    falseの場合はalpha値は無視され0xFFがalpha値として使用される。
  • Paint paint:nullを指定する。
void drawBitmap(int[] colors, int offset, int stride, float x, float y, int width, int height, boolean hasAlpha, Paint paint) 色配列を指定し、Canvas上に描画する。
API level 21で非推奨になりました。
  • int[] colors:描画する色配列、一要素が1ピクセルになります。
  • int offset:colorsの開始要素を指定する。
  • int stride:colorsの中で一行に何個の要素が使われるかを指定する。
    widthよりも大きい値を指定する必要があります。
  • float x:color配列の描画開始x座標を指定する。
  • float y:color配列の描画開始y座標を指定する。
  • int width:color配列の描画する幅を指定する。
  • int height:color配列の描画する高さを指定する。
  • boolean hasAlpha:color配列の値がalpha値を持つかを指定する。
    falseの場合はalpha値は無視され0xFFがalpha値として使用される。
  • Paint paint:nullを指定する。
void drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) Bitmapを描画する方法を行列で指定し、Canvas上に描画する。
void drawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint) Bitmapを任意の縦線(左右端を含む)と横線(左右端を含む)で分割し、その縦横の線の交点座標を決めます。
交点座標に対応するCanvas上の任意の座標を配列(メッシュ座標)で指定してCanvas上に描画する。
  • Bitmap bitmap:Canvasに描画する画像
  • int meshWidth:横方向の分割数を指定する。
  • int meshHeight:縦方向の分割数を指定する。
  • float[] verts:Canvas上の座標配列を指定する、 要素数は(meshWidth+1) * (meshHeight+1) * 2 + vertOffsetになる。
  • int vertOffset:vertsで使用する開始要素を指定する。
  • int[] colors:bitmapの色に乗算する色配列を指定する、大抵の場合はnullを指定する。
    要素数は(meshWidth+1) * (meshHeight+1) + colorOffsetになる。
  • int colorOffset:色配列の使用開始要素を指定する。
  • Paint paint:nullを指定する。

 

描画範囲を制限する
boolean clipRect(int left, int top, int right, int bottom) 四角形の左上と右下の座標を指定してクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • int left:四角形の左上のx座標を指定する。
  • int top:四角形の左上のy座標を指定する。
  • int right:四角形の右下のx座標を指定する。
  • int bottom:四角形の右下のy座標を指定する。
boolean clipRect(float left, float top, float right, float bottom) 四角形の左上と右下の座標を指定してクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • float left:四角形の左上のx座標を指定する。
  • float top:四角形の左上のy座標を指定する。
  • float right:四角形の右下のx座標を指定する。
  • float bottom:四角形の右下のy座標を指定する。
boolean clipRect(Rect rect) Rectを使用してクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • Rect rect:クリッピングする四角形で指定する。
boolean clipRect(RectF rect) RectFを使用してクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • RectF rect:クリッピングする四角形で指定する。
boolean clipPath(Path path) Pathを使用してクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • Paint paint:クリッピングする範囲を指定する。
boolean clipRegion(Region region) Regionを使用してクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。 API level 21で非推奨になりました。
clipRect(Rect)を代わりに使用しましょう。

 

描画範囲を制御する
boolean clipRect(float left, float top, float right, float bottom, Region.Op op) 四角形の左上と右下の座標を指定してオプションに従いクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • int left:四角形の左上のx座標を指定する。
  • int top:四角形の左上のy座標を指定する。
  • int right:四角形の右下のx座標を指定する。
  • int bottom:四角形の右下のy座標を指定する。
  • Region.Op op:クリッピングのオプションを指定する。
boolean clipRect(Rect rect, Region.Op op) Rectを使用してオプションに従いクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • Rect rect:クリッピングする四角形で指定する。
  • Region.Op op:クリッピングのオプションを指定する。
boolean clipRect(RectF rect, Region.Op op) RectFを使用してオプションに従いクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • RectF rect:クリッピングする四角形で指定する。
  • Region.Op op:クリッピングのオプションを指定する。
boolean clipPath(Path path, Region.Op op) Pathを使用してオプションに従いクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。
  • Paint paint:クリッピングする範囲を指定する。
  • Region.Op op:クリッピングのオプションを指定する。
boolean clipRegion(Region region, Region.Op op) Regionを使用してオプションに従いクリッピングする。
座標は対象のオリジナルCanvasの左上を原点とします。
ただし、クリップは現在のクリップされた範囲内で行われる。 API level 21で非推奨になりました。
clipRect(Rect)を代わりに使用しましょう。
  • Region region:クリッピングする範囲を指定する。
  • Region.Op op:クリッピングのオプションを指定する。
final Rect getClipBounds() 現在クリッピングされている範囲をRectインスタンスとして取得する。
boolean getClipBounds(Rect bounds) 空のRectインスタンスに現在クリッピングされている範囲を設定する。

 

変形する
void translate(float dx, float dy) Canvasを移動させる。
  • float dx:x方向の移動量を指定する。
  • float dy:y方向の移動量を指定する。
void scale(float sx, float sy) 画面左上を基点としてCanvasを拡大・縮小させる。
  • float sx:x方向の拡大・縮小量を指定する。
  • float sy:y方向の拡大・縮小量を指定する。
void scale(float sx, float sy, float px, float py) 任意の座標を基点としてCanvasを拡大・縮小させる。
  • float sx:x方向の拡大・縮小量を指定する。
  • float sy:y方向の拡大・縮小量を指定する。
  • float px:拡大・縮小の基点座標のxを指定する。
  • float py:拡大・縮小の基点座標のyを指定する。
void rotate(float degrees) 画面左上を基点としてCanvasを回転させる。
  • float degrees:回転量を指定する。正の値を指定すると時計周り、負の値を指定すると反時計回りに回転する。
final void rotate(float degrees, float px, float py) 任意の座標を基点としてCanvasを回転させる。
  • float degrees:回転量を指定する。正の値を指定すると時計周り、負の値を指定すると反時計回りに回転する。
  • float px:回転の基点座標のxを指定する。
  • float py:回転の基点座標のyを指定する。
void skew(float sx, float sy) Canvasを歪曲させる。
  • float sx:x軸の傾きを[x:0,y:0]と[x:0 ,sx*Canvasの高さ]を結ぶ傾きにする。
  • float sy:y軸の傾きを[x:0,y:0]と[x:0 ,sy*Canvasの幅]を結ぶ傾きにする。

 

行列で変形する
void setMatrix(Matrix matrix) 現在、Canvasに設定されているMatrixを完全に入れ替える。
void concat(Matrix matrix) 現在、Canvasに設定されているMatrixに前側から掛け算を行う。
Matrix getMatrix() 現在、Canvasに設定されているMatrixを取得する。
API level 16で非推奨になりました。
void getMatrix(Matrix ctm) 現在、Canvasに設定されているMatrixを私たMatrixに設定する。
API level 16で非推奨になりました。

 

描画の保存
boolean quickReject(float left, float top, float right, float bottom, Canvas.EdgeType type) 現在のMatrixによって変形した後、四角形の左上と右下の座標で指定された領域がクリップされたCanvas内に含まれるかを判定する。
含まれない場合はtrue、含まれる場合はfalseを返却する。
  • float left:四角形の左上のx座標を指定する。
  • float top:四角形の左上のy座標を指定する。
  • float right:四角形の右下のx座標を指定する。
  • float bottom:四角形の右下のy座標を指定する。
  • Canvas.EdgeType type:境界部分のタイプを指定する。
boolean quickReject(RectF rect, Canvas.EdgeType type) 現在のMatrixによって変形した後、RectFで指定された領域がクリップされたCanvas内に含まれるかを判定する。
含まれない場合はtrue、含まれる場合はfalseを返却する。
boolean quickReject(Path path, Canvas.EdgeType type) 現在のMatrixによって変形した後、Pathで指定された領域がクリップされたCanvas内に含まれるかを判定する。
含まれない場合はtrue、含まれる場合はfalseを返却する。

 

描画の保存
int getSaveCount() Returns the number of matrix/clip states on the Canvas’ private stack.
void restore() This call balances a previous call to save(), and is used to remove all modifications to the matrix/clip state since the last save call.
void restoreToCount(int saveCount) Efficient way to pop any calls to save() that happened after the save count reached saveCount.
int save(int saveFlags) Based on saveFlags, can save the current matrix and clip onto a private stack.
int save() Saves the current matrix and clip onto a private stack.

 

頂点配列を使って描画する
void drawVertices(Canvas.VertexMode mode, int vertexCount, float[] verts, int vertOffset, float[] texs, int texOffset, int[] colors, int colorOffset, short[] indices, int indexOffset, int indexCount, Paint paint) Draw the array of vertices, interpreted as triangles (based on mode).

 

Canvasの情報を取得する
int getDensity() Returns the target density of the canvas.
DrawFilter getDrawFilter()  
int getHeight() Returns the height of the current drawing layer
int getMaximumBitmapHeight() Returns the maximum allowed height for bitmaps drawn with this canvas.
int getMaximumBitmapWidth() Returns the maximum allowed width for bitmaps drawn with this canvas.
int getWidth() Returns the width of the current drawing layer
boolean isHardwareAccelerated() Indicates whether this Canvas uses hardware acceleration.
boolean isOpaque() Return true if the device that the current layer draws into is opaque (i.e.
void setBitmap(Bitmap bitmap) Specify a bitmap for the canvas to draw into.
void setDensity(int density) Specifies the density for this Canvas’ backing bitmap.
void setDrawFilter(DrawFilter filter)  

 

レイヤー
int saveLayer(float left, float top, float right, float bottom, Paint paint) Convenience for saveLayer(left, top, right, bottom, paint, ALL_SAVE_FLAG)
int saveLayer(RectF bounds, Paint paint, int saveFlags) This behaves the same as save(), but in addition it allocates and redirects drawing to an offscreen bitmap.
int saveLayer(RectF bounds, Paint paint) Convenience for saveLayer(bounds, paint, ALL_SAVE_FLAG)
int saveLayer(float left, float top, float right, float bottom, Paint paint, int saveFlags) Helper version of saveLayer() that takes 4 values rather than a RectF.
int saveLayerAlpha(float left, float top, float right, float bottom, int alpha, int saveFlags) Helper for saveLayerAlpha() that takes 4 values instead of a RectF.
int saveLayerAlpha(RectF bounds, int alpha, int saveFlags) This behaves the same as save(), but in addition it allocates and redirects drawing to an offscreen bitmap.
int saveLayerAlpha(float left, float top, float right, float bottom, int alpha) Helper for saveLayerAlpha(left, top, right, bottom, alpha, ALL_SAVE_FLAG)
int saveLayerAlpha(RectF bounds, int alpha) Convenience for saveLayerAlpha(bounds, alpha, ALL_SAVE_FLAG)

 

未分類
void drawPicture(Picture picture) Save the canvas state, draw the picture, and restore the canvas state.
void drawPicture(Picture picture, Rect dst) Draw the picture, stretched to fit into the dst rectangle.
void drawPicture(Picture picture, RectF dst) Draw the picture, stretched to fit into the dst rectangle.
void drawPath(Path path, Paint paint) Draw the specified path using the specified paint.
void drawColor(int color, PorterDuff.Mode mode) Fill the entire canvas’ bitmap (restricted to the current clip) with the specified color and porter-duff xfermode.
void drawTextRun(char[] text, int index, int count, int contextIndex, int contextCount, float x, float y, boolean isRtl, Paint paint) Draw a run of text, all in a single direction, with optional context for complex text shaping.
void drawTextRun(CharSequence text, int start, int end, int contextStart, int contextEnd, float x, float y, boolean isRtl, Paint paint) Draw a run of text, all in a single direction, with optional context for complex text shaping.

 

Region.Opについて

オプションは6種類存在します、これらのオプションは今の描画範囲とメソッドで指定された範囲の二つの範囲を元に描画範囲を決定します。

Region.Op UNION 元の描画範囲と指定された範囲の両方が描画範囲となります。
Region.Op REPLACE 元の描画範囲を指定された範囲に置き換えます。
Region.Op DIFFERENCE 元の描画範囲に対して指定された範囲を削除します。
Region.Op REVERSE_DIFFERENCE 指定された範囲に対して、元の描画範囲を削除した部分が描画範囲になります。
Region.Op INTERSECT 元の描画範囲と指定された範囲の重なる部分が描画範囲となります。
Region.Op XOR 2つの範囲の論理演算XORをとります。

Androidゲームプログラミング A to Z

新品価格
¥4,968から
(2017/2/27 22:58時点)


AndroidエンジニアのためのモダンJava

新品価格
¥3,456から
(2017/2/27 23:01時点)


AndroidNDKネイティブプログラミング第2版

中古価格
¥1,893から
(2017/2/28 00:04時点)


Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)

新品価格
¥3,024から
(2017/2/28 00:06時点)


Android Studio ではじめる Android プログラミング入門 第3版 Android Studio 2対応

新品価格
¥3,240から
(2017/2/28 00:11時点)


アプリを作ろう! Android入門 Android Studio版 Android5対応

新品価格
¥2,160から
(2017/2/28 00:31時点)


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)