ȸéÀ» ÅÍÄ¡ÇÏ¿© ¿øÀ» Âï¾îº¸ÀÚ.
À̺¥Æ®°¡ ¹ß»ý ÇßÀ»¶§ À̺¥Æ® Çڵ鷯¿¡ ´ëÇؼ ¾Ë¾Æº¸ÀÚ.
View Ŭ·¡½º¿¡ onTouchEvent¸¦ Ãß°¡ÇÑ´Ù.
public boolean onTouchEvent( MotionEvent event)
{
int action = event.getAction();
if(( action & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN)
{
//¹ß»ýÇÑ À̺¥Æ® ó¸®
}
return true;
}
À̺¥Æ®ÀÇ Á¾·ù´Â ´ÙÀ½°ú °°´Ù.
ACTION_DOWN : ÅÍÄ¡ ´Ù¿î
ACTION_UP : ÅÍÄ¡ ¾÷
ACTION_MOVE : ÅÍÄ¡ À̵¿
ACTION_POINT_DOWN : ÅÍÄ¡ ÁßÀÇ Ãß°¡ ÅÍÄ¡
ACTION_PINTER_UP : ¸ÖƼ ÅÍÄ¡ÁßÀÇ ¾÷
ACTION_CANCEL : ÅÍÄ¡ÀÇ Ãë¼Ò
onTouchEvent°¡ ¹ß»ýÇϸé ArrayListÀÎ points¿¡ ÀúÀåÇÑ´Ù.
onDraw¿¡¼ points¿¡ ÀúÀåµÈ À§Ä¡¸¦ ±×¸°´Ù.
< HelloView.java >
package com.example.helloworld;
import java.util.ArrayList;
import android.view.MotionEvent;
import android.view.View;
//Äڵ带 À§ÇØ Ãß°¡
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
//import android.view.View;
import android.graphics.PointF;
public class HelloView extends View {
private Paint paint = new Paint(); //½ºÅ¸ÀÏ, »öÀ» À§Çؼ
private ArrayList<PointF> points = new ArrayList<PointF>();
public HelloView( Context context)
{
super( context);
setBackgroundColor( Color.WHITE);
setFocusable(true); //Æ÷Ä¿½º°¡ ÀÖ´Â À̺¥Æ®¸¦ ¹ÞÀ» °ÍÀÎÁö, ¹ÞÁö ¾ÊÀ» °ÍÀÎÁö¸¦ ÁöÁ¤
}
@Override
public void onDraw(Canvas canvas)
{
paint.setAntiAlias(true);;
paint.setStyle( Paint.Style.FILL);
for( int i = 0; i < points.size(); i++)
{
canvas.drawCircle(points.get(i).x, points.get(i).y, 10, paint); //ÀúÀåÇÑ ÁÂÇ¥·Î ¿øÀ» ±×¸°´Ù.
}
}
//À̺¥Æ® Çڵ鷯
@Override
public boolean onTouchEvent( MotionEvent event)
{
int action = event.getAction();
if(( action & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN)
{
points.add( new PointF( event.getX(), event.getY())); //ÅÍÄ¡ÇÑ ÁÂÇ¥¸¦ Ãß°¡ ÇÑ´Ù.
invalidate(); //ȸéÀ» ´Ù½Ã ±×¸°´Ù
}
return true;
}
}
|
½ÇÇàÇÏ¸é ´ÙÀ½°ú °°´Ù.
Áö´Ï¸ð¼Ç¿¡¼ ½ÇÇàÇϸé Á×´Â ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. 10¹ø Á¤µµ ½ÇÇàÇÏ´Ù°¡ ¾î´À¼ø°£ ½ÇÇàÀÌ ÀߵȴÙ.
|