Goodroid

GoodroidはAndroidアプリ開発のための情報をコラムやブログで紹介するサイトです。


Canvasを回転させる
ここではCanvasを回転させる方法を確認していきます。

サンプルコードではアクティビティに円を絵画するビューを追加して表示してます。アクティビティにビューを追加するにはActivityクラスで用意されている「setContentView」メソッドを使います。

RotateActivity.java
package goodroid.sample.circle;

import goodroid.sample.circle.MyView;
import android.app.Activity;
import android.os.Bundle;

public class RotateActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // 作成したビューオブジェクトを生成
        MyView myView = new MyView(this);

        // 生成したビューを表示する
        setContentView(myView);
    }
}


MyView.java
package goodroid.sample.rotate;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class MyView extends View{

  public MyView(Context context) {
	super(context);
  }

  protected void onDraw(Canvas canvas){
	super.onDraw(canvas);

	// 背景を白にする
	canvas.drawColor(Color.WHITE);

	// ペイントオブジェクトを生成
	Paint paint = new Paint();

	// フォントサイズを変更する
	paint.setTextSize(80);

	// "回転前"の文字を表示する
	canvas.drawText("回転前", 30, 100, paint);

	// 絵画する太さを変更
	paint.setStrokeWidth(10);

	// 色を赤に変更
	paint.setColor(Color.RED);

	// 点を描画(回転位置確認用)
	canvas.drawPoint(30, 150, paint);

	// キャンパスを位置(30, 150)を中心に時計回りに90度回転
	canvas.rotate(90, 30, 150);

	// "回転後"の文字を表示する
	canvas.drawText("回転後", 30, 100, paint);

  }
}


「rotate」メソッドを呼び出すと、Canvasを回転させることができます。
引数には、degrees, positionX, positionYを設定します。

サンプルコードでは画面上の赤い点(30, 150)を中心にCanvasを時計周りに90度回転させています。

実行結果



5181 views | コメント:0 | 2012-06-02
コメント
まだこの記事にコメントはありません
コメントの投稿
名前 (必須)

メールアドレス (非公開)

本文(必須)

パスワード (必須)
(半角数字4桁)