±ÛÀ» ÀÐÀ¸½Ã±â¿¡ ¾Õ¼ , À̰ÍÀº Layout¿¡¼¸¸ ÇÑÁ¤µÇ¾î ÀÖÀ¸¸ç, layoutÁß¿¡¼µµ
ÀϺΠ·¹À̾ƿô¿¡¼¸¸ Àû¿ëµÊÀ» ¼÷ÁöÇϽñ⠹ٶø´Ï´Ù.
¿ì¼± À̰ÍÀ» ¼³¸íÇϱâÀü¿¡ °£´ÜÇÏ°Ô ¾Èµå·ÎÀÌµå ½Ã½ºÅÛÀÌ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´Â ¹æ½Ä¿¡ ´ëÇÏ¿©
°£´ÜÇÏ°Ô ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
¾Èµå·ÎÀ̵å´Â µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¶§ Å¥¹æ½ÄÀÌ ¾Æ´Ñ ½ºÅùæ½ÄÀ» »ç¿ëÇÕ´Ï´Ù. À̸»Àº °¡ÀåóÀ½ µé¾î°£
°ÍºÎÅÍ ¼ø¼´ë·Î ¹øÈ£°¡ ÀÖÀ¸¸ç, ÀÌ ¶§¹®¿¡ ÀÌ µ¥ÀÌÅ͸¦ Á¢±ÙÇϱâ À§Çؼ ±×³É À̹øÈ£¸¸ ÀÖÀ¸¸é µÈ´Ù´Â°ÍÀÔ´Ï´Ù.
½ºÅÃÀÇ °æ¿ì ¸ÇÀ§¿¡ Àִ°ÍÀ» ¸ÕÀú»©¾ß ¾Æ·¡¿¡ Àմ°ÍÀ» ²¨³»¿Ã ¼ö Àִµ¥ À̰ÍÀº API¿¡¼
¾Ë¾Æ¼ ó¸®ÇϹǷΠ½Å°æ¾È¾²¼Åµµ µË´Ï´Ù. ´ÜÁö ¿ì¸®´Â µ¥ÀÌÅ͸¦ °¡Á®¿À±â À§ÇØ ¹øÈ£¸¸ ¾Ë°í ÀÖÀ¸¸é
µÈ´Ù´Â°ÍÀ» ±â¾ïÇØµÎ½Ã¸é µË´Ï´Ù.
¿¹¸¦µé¸é ÅÍÄ¡À̺¥Æ®·Î x°ªÀ» ¹Þ¾Ò½À´Ï´Ù. À̰ÍÀº °íÀ¯ id°¡ Á¸ÀçÇϸç, ±× id¿¡ ÁÂÇ¥ xÀÇ °ªÀÌ ÀúÀåµÈ
´Ù´Â Àǹ̰¡ µË´Ï´Ù. µû¶ó¼ xÀÇ °ªÀ» °¡Á®¿À±â À§ÇØ ´Ü¼øÈ÷ id ¹øÈ£¸¸ ¾Ë°í ÀÖÀ¸¸é °£´ÜÇÏ°Ô °¡Á®¿Ã
¼ö ÀÖ½À´Ï´Ù.
´Ü, ±âº» ÅÍÄ¡À̺¥Æ®´Â ½Ì±ÛÀ̺¥Æ®¸¦ ±âº»À¸·Î ÇϹǷÎ(½ºÅûçÀÌÁî1), ½ºÅûçÀÌÁî°¡ µ¿ÀûÀ̵ǴÂ
MotionEvent.Action_Pointer_Down À» »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù.
UPÀ» ºÒ·¯¿À±âÀü±îÁö´Â ÀÌ µ¥ÀÌÅÍ´Â ½ºÅÿ¡ À¯ÁöµÇ°í, UPÀ̺¥Æ®°¡ ºÒ·¯¿ÍÁö´Â ¼ø°£ ÀÌ µ¥ÀÌÅÍ´Â
½ºÅÿ¡¼ ¼Ò¸êÇÕ´Ï´Ù.
¾Èµå·ÎÀ̵忡¼´Â ÅÍÄ¡ À̺¥Æ®¸¦ À§ÇÑ ½ºÅÃÀº Çϳª¸¸ °¡Áö°í ÀÖÀ¸¹Ç·Î ´ÙÀ½ µ¥ÀÌÅ͸¦ ¹Þ±â À§ÇÑ
´ç¿¬ÇÑ °ÍÀÔ´Ï´Ù.
ÀÚ ±×·³ ³»¿ë¿¡ µé¾î°¡µµ·Ï ÇϰڽÀ´Ï´Ù.
¿ì¼± À§¿¡ ¸»Çß´ø°Í°ú ¸¶Âù°¡Áö·Î ¿ì¸®´Â µÎ°¡ÁöÀÇ À̺¥Æ®¸¦ »ç¿ëÇØ¾ßµË´Ï´Ù.
¹Ù·Î Action_Down°ú Action_Pointer_Down ÀÔ´Ï´Ù.
ÀüÀÚ´Â ½Ì±ÛÀ̺¥Æ®, ÈÄÀÚ´Â ¸ÖƼÀ̺¥Æ®ÀÔ´Ï´Ù.
Á¶°ÇÀº
LinearLayout lr;
ArrayList<Integer> itemsX;
ArrayList<Integer> itemsY;
lr.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
int Pcount = -1;
if(event.getAction() == MotionEvent.Action_Down
|| MotionEvent.Action_Pointer_Down)
{
Pcount = event.getPointerCount();
if(Pcount >1)
{
for(int start = 0; start<Pcount; start++)
{
itemsX.add((int)event.getX(start));
Log.i("ItemsX","X-Size:"+itemsX.size());
}
}
else {
.....
}
}
¾Æ °£´ÜÇÏÁÒ?
¾î·Æ´Ù°í ÇϽôºÐÀº À̺κÐÀÌ ÀÌÇØ°¡ ¾ÈµÉ °Ì´Ï´Ù.
¿Ö, Pcount°¡ Á¸ÀçÇϸç, ¶Ç ¿Ö ±×¾È¿¡ if¹®ÀÌ µé¾î°¡°í else´Â ¹«¾ùÀ̸ç,
¿Ö event.getX(start)°¡ µé¾î°¡´Â°ÍÀ̳Ä?
À§ºÎÅÍ ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
À̺¥Æ®°¡ ½ÃÀ۵Ǵ ºÎºÐ¿¡¼´Â ȸéÀÇ event¸¦ ¹Þ¾Æ¿À´Â °´Ã¼ÀÎ event°¡ ÀÖ½À´Ï´Ù.
À̰ÍÀº ȸ鳻¿¡ °¨ÁöµÇ´Â ÅÍÄ¡¸¦ °¨ÁöÇÏ´Â °ÍÀ¸·Î ÅÍÄ¡ÇÏ´Â ¼ø°£ºÎÅÍ ¶§´Â ¼ø°£±îÁö ¸ðµÎ ±â·Ï
µË´Ï´Ù. ¹°·Ð ½ºÅÿ¡ ÀúÀåµÇ°í upµÇ´Â ¼ø°£ ½Ï ³¯¾Æ°©´Ï´Ù.
event.getAction()À̶ó´Â °ÍÀº °¨ÁöµÇ´Â TouchÀ̺¥Æ®¸¦ °¡Á®¿À´Â °ÍÀÔ´Ï´Ù.
upµÇ´Â ¼ø°£±îÁö ¸ðµÎ °¨ÁöÇϸç, À̰ÍÀ» °¡Á®¿É´Ï´Ù.
±×°ÍÀ» ºñ±³ÇÏ´Â °ÍÀÌ MotionEvent.Action_Down ÀÔ´Ï´Ù.
¿Ö ºÎ¸ðŬ·¡½º¸¦ »ç¿ëÇß³ª¿ä? ¹»»ç¿ëÇØµµ »ó°ü¾øÀ¸³ª, MotionEvent´Â ÀüüÀûÀÎ À̺¥Æ®¸¦ ijġ°¡
°¡´ÉÇϹǷΠ»óÀ§Å¬·¡½ºÀÚü¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù.
µÚ¿¡ ÀÖ´Â Action_Pointer_DownÀº ¸ÖƼÀ̺¥Æ®¸¦ °¨ÁöÇÏ´Â °ÍÀ¸·Î ¿©·¯°³ ´·ÈÀ»¶§¸¦ °¨ÁöÇϰí
ÁÂÇ¥¸¦ ÀúÀåÇØÁÝ´Ï´Ù.
Pcount´Â °¨ÁöµÈ xÁÂÇ¥ÀÇ °ªµéÀÇ id¸¦ °¡Áö°Ô µË´Ï´Ù.
1ÀÌ»óÀ̶ó¸é ¸ÖƼ ÅÍÄ¡À̹ǷΠif¹®À¸·Î ºüÁ® ¸ÖƼ ÅÍÄ¡·Î ó¸®ÇϸéµÇ°í,
1ÀÌÇ϶ó¸é ½Ì±ÛÀ̹ǷΠelse·Î ºüÁ® ½Ì±Û·Î ó¸®ÇϽøéµË´Ï´Ù.
¸ÖƼÅÍÄ¡ÂÊÀº ½ÇÁ¦ ¹Þ¾Æ¿Â xÁÂÇ¥°ªÀ» ¹è¿¿¡ ÀúÀåÇÏ°í ±× »çÀÌÁ ¸®ÅÏÇØÁÖ¸ç,
½Ì±ÛÀº »©µÎ¾ú½À´Ï´Ù.
À§ÀÇ ¹®Àå¿¡¼ Áú¹®ÀÌ »ý±â½Å´Ù¸é ´ñ±Û·Î Áú¹®ºÎʵ右´Ï´Ù. ÂÊÁö´Â ¾ÈºÁ¼¿ä..
* ±ÛÀ» µî·ÏÇϽǶ§ ²À ÇÊ¿äÇÑ °æ¿ì°¡ ¾Æ´Ï¸é °³ÀÎÁ¤º¸¸¦ ³²±âÁö ¸¶¼¼¿ä ^^ (¿¬¶ôó,À̸ÞÀÏÁÖ¼Ò,Áֹεî·Ï¹øÈ£ µî)