android.graphics.* android.animation.* のあたりにも手を出してみたい、とようやく考え始め。
まずはシンプルに円を描くコードを作成。
下記のコードは、青色の線で円を描きます。
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
public class CanvasSampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((LinearLayout) findViewById(R.id.container)).addView(new MyView(this));
}
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
Paint paint = new Paint();
paint.setColor(0xff0000ff);
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(200f, 200f, 100f, paint);
}
}
}
なお、R.layout.mainは以下のようになっています。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/container"
android:background="#ffffffff">
</LinearLayout>
android:id="@+id/container"を定義している以外は、特に何もしていません。
基本的なポイントとしては、
・Viewを継承したクラスを作成し、その中でonDrawメソッドをオーバーライドして描画プログラムを書く。
・onDrawメソッドは最初の描画時や、invalidate()が呼び出された時などに自動的に呼び出される。
・Paintオブジェクトには色やエフェクト等書式的な情報がセットできる。
・Canvasオブジェクトが「丸を書く」「四角を書く」「線を書く」などの描画メソッドを持っている。描画メソッドは基本的にPaintオブジェクトを引数に取るようになっている。
また、Paint.StyleプロパティはデフォルトではFILLになっており、円や四角を描いた場合、中身はすべて塗りつぶされます。STROKEに変更すると周のみを描くことができます。
0 件のコメント:
コメントを投稿