À̺¥Æ®ÀÇ Á¶ÇÕÀ¸·Î »ç¿ëÀÚ°¡ ¾î¶² µ¿ÀÛÀ» Çß´ÂÁö °¨Áö ÇÒ¼ö ÀÖ´Ù.
ÀÌ°ÍÀ» Á¦½ºÃĶó ºÎ¸¥´Ù.
¾Èµå·ÎÀ̵忡¼´Â GestureDetector·Î Á¦½ºÃĸ¦ ó¸® ÇÑ´Ù.
public class HelloView extends View implements GestureDetector.OnGestureListener
View Ŭ·¡½º¿¡ Á¦½ºÃÄ À̺¥Æ® Çڵ鷯¸¦ Ãß°¡ ÇÒ·Á¸é GestureDetector.OnGestureListener ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó ÇÑ´Ù.
À̺¥Æ®¸¦ ±¸ÇöÇϱâ Àü¿¡ GestureDetector¸¦ »ý¼ºÇÑ´Ù.
private GestureDetector gesdet;
gesdet = new GestureDetector( context, this);
GestureDetector¿¡ ÅÍÄ¡ À̺¥Æ®¸¦ ³Ñ°ÜÁÖ¸é ÅÍÄ¡ À̺¥Æ®¸¦ ºÐ¼®ÇÏ¿© Á¦½ºÃÄ À̺¥Æ®·Î ¸¸µç´Ù.
@Override
public boolean onTouchEvent( MotionEvent event)
{
gesdet.onTouchEvent(event);
return true;
}
´ÙÀ½ÀÇ À̺¥Æ®¸¦ ±¸Çö ÇÑ´Ù.
¹Ýȯ°ªÀº º¸Åë false·Î ÁöÁ¤ÇÑ´Ù. À̺¥Æ®¸¦ ±¸ÇöÇÑ °æ¿ì¿¡¼´Â true¸¦ ¹ÝȯÇÑ´Ù.
±æ°Ô ´©¸£±â : onLongPress
½ºÅ©·Ñ : onScroll
Çø¯ : onFling
´©¸¥ ä ½ºÅ©·Ñ µîÀ» ÇÏÁö ¾ÊÀ½ : onShowPress
´©¸¥´Ù : onDown
¶¾´Ù : onSingleTapUp |
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;
import android.view.GestureDetector;
import android.view.MotionEvent;
public class HelloView extends View
implements GestureDetector.OnGestureListener
{
private Paint paint = new Paint(); //½ºÅ¸ÀÏ, »öÀ» À§Çؼ
private GestureDetector gesdet;
private ArrayList<String> status = new ArrayList<String>();
public HelloView( Context context)
{
super( context);
setBackgroundColor( Color.WHITE);
gesdet = new GestureDetector( context, this);
setFocusable(true); //Æ÷Ä¿½º°¡ ÀÖ´Â À̺¥Æ®¸¦ ¹ÞÀ» °ÍÀÎÁö, ¹ÞÁö ¾ÊÀ» °ÍÀÎÁö¸¦ ÁöÁ¤
}
@Override
public void onDraw(Canvas canvas)
{
paint.setAntiAlias(true); //¼±ÀÌ ºÎµå·´°Ô ±×·ÁÁø´Ù
paint.setTextSize( 20); //¹®ÀÚÀÇ Å©±â¸¦ ¹Ù²Û´Ù
for( int i = 0; i < Math.min(10, status.size()); i++)
{
canvas.drawText( status.get(i), 0, 40 + i * 20, paint);
}
}
@Override
public boolean onTouchEvent( MotionEvent event)
{
gesdet.onTouchEvent(event);
return true;
}
public void onLongPress( MotionEvent event)
{
status.add( 0, "LongPress");
invalidate();
}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float dx, float dy)
{
status.add(0, "onScroll dx=" + dx + " dy=" + dy);
invalidate();
return false;
}
public boolean onFling( MotionEvent e1, MotionEvent e2, float vx, float vy)
{
status.add(0, "onFling vx=" + vx + "vy=" + vy);
invalidate();
return false;
}
public void onShowPress(MotionEvent e)
{
status.add(0, "onShowPress");
invalidate();
}
public boolean onDown(MotionEvent e)
{
status.add(0, "onDown");
invalidate();
return true;
}
public boolean onSingleTapUp( MotionEvent e)
{
status.add(0, "onSingleTapUp");
invalidate();
return false;
}
}
|
½ÇÇà ȸéÀÌ´Ù
|