七章:Canvasの拡縮・回転をする

間が空いてしまったが、今回はCanvasそのものに操作を加える。
と言っても五章の描画部分にほんのちょっと付け足すだけでこの章はおしまい。

+ ソース
  1. /*******
  2. * 描画
  3. ******/
  4. protected void onDraw(Canvas canvas)
  5. {
  6. //背景色を設定
  7. canvas.drawColor(Color.WHITE); //白に設定する
  8. //リソースファイル内の画像をBitmapに変換して格納する。
  9. bmp = BitmapFactory.decodeResource(res, R.drawable.img);
  10.  
  11. //Canvasを操作する(テストしたい項目のコメントアウトを解除する)
  12. //canvas.translate(50, 50); //移動(float)
  13. //canvas.rotate(45); //回転(float)
  14. //canvas.skew(-0.1f, 0.5f); //歪みを加える(float)
  15. //canvas.scale(1, 2); //拡縮(float)
  16.  
  17. //変換したBitmapで描画
  18. canvas.drawBitmap(bmp, x, y, paint);
  19. }
  20.  

+ ちょっとした小話
画像に対して直接操作を加えるのではなく、Canvasそのものに操作を加えるという事は
Canvas上のすべての要素に対して同じように操作が加えられるという事になる。
また、画像の座標はCanvas上の画像の座標として扱われるので、
それぞれ独立した値を持つことに注意すること。
他に注意するべき点は、Canvasを回転するとき、角度だけを指定した場合は画面左上を中心に回転するところ。
回転の中心を変更したい場合は、canvas.rotate(角度, X,Y)で指定してあげるとよい。
最終更新:2013年08月28日 15:14