시소당
설명을 순서대로 하자면
1. GraphicActivity를 만든다.
2. 이너 클래스로 View를 상속한 DrawingView 클래스를 만든다. 깔끔하게 다른 클래스로 만들면 좋겟지만 귀찮아서 한군데 몰아 놓았습니다.
3. 뷰를 레이아웃에 addView해서 껴놓아서 화면에 뿌려주면 끝입니다.
다음은 결과물인 화면과 코드입니다.
package com.test.circle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
public class CircleGraphActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout1);
DrawingView ov = new DrawingView(this);
ll.addView(ov);
}
public class DrawingView extends View{
public DrawingView(Context context) {
super(context);
}
public DrawingView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public DrawingView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setTextSize(22);
paint.setAntiAlias(true);
//원
canvas.drawCircle(240, 100, 70, paint);
canvas.drawText("Circle", 200, 190, paint);
//사각형
canvas.drawRect(190,200,290,300, paint);
canvas.drawText("Rect", 200, 320, paint);
//부채꼴
RectF rf = new RectF(190, 350, 290, 450);
canvas.drawArc(rf, 0, 100, true, paint);
canvas.drawText("Arc", 200, 470, paint);
paint.setStrokeWidth(10);
canvas.drawLine(200, 500, 300, 500, paint);
canvas.drawText("Line", 200, 530, paint);
}
}
}
출처: http://ralf79.tistory.com/66 [진형아빠이야기]