현재 간단하게 그림판 어플을 만들어 보려고 하는데요.
기존에 인터넷상에 돌아다니는 소스입니다.
public class PaintActivity extends Activity {
private DrawView drawView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawView = new DrawView(this);
setContentView(drawView);
}
}
******************************************************************
public class DrawView extends View {
private Paint paint;
private ArrayList<Vertex> vertex;
public DrawView(Context context) {
super(context);
vertex = new ArrayList<Vertex>();
paint = new Paint();
paint.setColor(Color.GREEN);
paint.setStrokeWidth(5);
paint.setAntiAlias(true);
}
/** 터치이벤트를 받는 함수 */
@Override
public boolean onTouchEvent(MotionEvent event) {
switch ( event.getAction() ) {
case MotionEvent.ACTION_DOWN:
vertex.add(new Vertex(event.getX(), event.getY(), false));
break;
case MotionEvent.ACTION_MOVE:
vertex.add(new Vertex(event.getX(), event.getY(), true));
}
invalidate(); // onDraw() 호출
return true;
}
/** 화면을 계속 그려주는 함수 */
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.WHITE); // 캔버스 배경색깔 설정
// 그리기
for (int i = 0; i < vertex.size(); i++) {
if ( vertex.get(i).isDraw() ) { // 이어서 그리고 있는 중이라면
canvas.drawLine(vertex.get(i - 1).getX(), vertex.get(i - 1).getY(),
vertex.get(i).getX(), vertex.get(i).getY(), paint);
// 이전 좌표에서 다음좌표까지 그린다.
} else {
canvas.drawPoint(vertex.get(i).getX(), vertex.get(i).getY(), paint);
// 점만 찍는다.
}
}
}
}
이렇게 인데 여기에서 버튼을 하나 추가하고 싶은데 어떻게 버튼을 추가하나요??
저라면.. 아래처럼 레이아웃 구성한다음에.. setContentView에 layout을 지정할것 같습니다. ^^
(코드는 대충 쓴겁니다. ^^;;)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.test.package.DrawView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Test" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test" />
</RelativeLayout>