¹ÙÄÚµå ½ºÄ³³Ê API·Î ZxingÀ» ¸¹ÀÌµé »ç¿ëÇϽǰſ¡¿ä.
°¡·Î¸ðµå°¡ ±âÁØÀε¥´Ù°¡ °¡·Î ¼¼·Î Å©±â¸¦ ±âÁØÀ¸·Î ¸®»çÀÌ¡ ÇÏ°í,
ImageView¸¦ ÄÁÆ®·Ñ Çϴ°Ծƴ϶ó.
surfaceView¿¡´Ù°¡ Åõ¸í ·¹À̾ƿôÀ» drawRect¶ó´Â°ÍÀ» 4°³±×·Á
Áߺ¹µÇÁö ¾Ê´Â ºÎºÐÀ» ĸóÇÏ´Â ¹æ½ÄÀ¸·Î µÇ¾î ÀÖ¾î¿ä.
±×·¡¼ À̺κÐÀ» ¼öÁ¤ÇÏ·Á¸é
ÃÑ 8°÷À» ¼öÁ¤ÇØ¾ß µÇÁÒ.
¼öÁ¤À» ÇÒ°÷Àº ViewfinderView.java¶ó´Â ÆÄÀÏÀÌ ÀÖ´Â ºÎºÐÀε¥
¿©±â¼.
///com\google\zxing\client\android\ViewfinderView.java ÀÔ´Ï´Ù.
91.
// Draw the exterior (i.e. outside the framing rect) darkened
paint.setColor(resultBitmap != null ? resultColor : maskColor);
canvas.drawRect(0, 0, width, frame.top, paint); //°¡·Î À¼±
canvas.drawRect(0, frame.top, frame.left, frame.bottom + 1, paint); //¼¼·Î ¿ÞÂʼ± canvas.drawRect(frame.right + 1, frame.top, width, frame.bottom + 1, paint); //¼¼·Î ¿À¸¥Âʼ± canvas.drawRect(0, frame.bottom + 1, width, height, paint); //°¡·Î ¾Æ·§¼±
À̺κÐÀº ȸé Àüü µÞ¹è°æ¿¡ ¸¶½ºÅ©¸¦ ¾º¿ì´Â ÀÛ¾÷ÀÌ¿¡¿ä.
=============
==== === ÀÌ·¸°Ô °ËÀº»öÀ¸·Î Ä¥ÇØÁø ºÎºÐÀ» ó¸®ÇÏ´Â °ÅÁÒ.
=============
canvas.drawRect(0, 0, width, frame.top, paint);
--->> À̺κÐÀº 0,0 < ȸéÀÇ °¡Àå ÃÖ»óÀ§ÀÇ ¿ÞÂʺκÐÀ» ½ÃÀÛÀ¸·Î ±âÁØÁ¡À» Àâ°í
width < ȸéÀÇ ÃÖ´ë °¡·Î ±æÀÌ ÀÔ´Ï´Ù.
frame.top <- À̺κÐÀº »ç°¢ÇüÀÇ YÁÂÇ¥Àε¥. º¸Åë ȸé ÃÖ´ë YÁÂÇ¥¿¡¼ 50~60dp
Á¤µµ¿¡ À§Ä¡ÇØ ÀÖ½À´Ï´Ù.
À̺κÐÀº ¾Æ±î À§ÀÇ ================== À̺κÐÀ» ä»öÇϴ°̴ϴÙ.
±×¸®°í ¾Æ·¡ ºÎºÐÀº canvas.drawRect(0, frame.top, frame.left, frame.bottom + 1, paint);
.left .bottom ÀÌ·¸°Ô µÇ¾î Àִµ¥
left´Â ȸé±âÁØÀ¸·Î ¼¼·ÎÀÇ ±æÀ̸¦ ¹Þ¾Æ¿É´Ï´Ù.(Top°ú ¸¶Âù°¡Áö·Î ÃÖ´ëÄ¡¿¡¼
50~60dp Á¤µµ ÀÇ À§Ä¡¸¦ ±âÁØÀ¸·Î Àâ½À´Ï´Ù.)
bottomÀº yÁÂÇ¥¿¡¼ ÇÏ´ÜÀ» °¡¸®Å°¸ç, ÀÌ ÁÂÇ¥ ¿ª½Ã °¡Àå ÇÏ´Ü¿¡¼ ÀÏÁ¤¼öÄ¡
¶³¾îÁ®ÀÕ½À´Ï´Ù.
¿¹¸¦µé¾î ³ª´Â ½ºÄµµÇ´Â ºÎºÐÀ» °¡·Î¸ðµå ±âÁØÀ¸·Î ¹ÝÀ¸·Î ÁÙÀÌ°í ½Í´Ù.(°¡·Î±æÀ̸¦)
¼¼·Î ¿ÞÂÊ/¿À¸¥Âʼ±ÀÇ À§Ä¡¸¦ ¾ÈÂÊÀ¸·Î ¶¯±â¸é µÇ°ÚÁÒ?
frame.left, frame.right°¡ xÁÂÇ¥°¡ µÇ¹Ç·Î À̺κÐÀ» °¢°¢ /2·Î ÁÙÀÌ°í ¿©±â¿¡ ´Ã¸®°í ½ÍÀº ¸¸ÅÀÇ
Çȼ¿Ä¡¸¦ Ãß°¡ÇÕ´Ï´Ù. /2°¡ µÇ¸é ¸¶½ºÅ© Å©±â¿¡¼ ¹ÝÁ¤µµ ÁÙ¾îµå´Âµ¥, ÀÌ°Ô ³Ê¹« ÀÛ´Ù°í ´À²¸Áö¸é
+ Çȼ¿ °ªÀ» ÇØÁֽøéµË´Ï´Ù.
¿ÞÂÊÀº -°ª ¿À¸¥ÂÊÀº +°ªÀÔ´Ï´Ù.
¹Ý´ë·Î ¼¼·Î Å©±â¸¦ ¼öÁ¤ÇÏ·Á¸é ¿ª½Ã top°ú bottomÀ» ¼öÁ¤ÇϽøéµÇ°í
¿©±â¿¡µµ À§ÂÊ°ªÀº -, ¾Æ·¡ÂÊ°ªÀº +°¡ µË´Ï´Ù.
103.
// Draw a two pixel solid black border inside the framing rect
paint.setColor(frameColor);
canvas.drawRect(frame.left, frame.top, frame.right + 1, frame.top + 2, paint);
canvas.drawRect(frame.left, frame.top + 2, frame.left + 2, frame.bottom - 1, paint);
canvas.drawRect(frame.right - 1, frame.top, frame.right + 1, frame.bottom - 1, paint);
canvas.drawRect(frame.left, frame.bottom - 1, frame.right + 1, frame.bottom + 1, paint);
À̺κÐÀº ¾ÈÂÊÀÇ ½ºÄµµÇ´Â ¿µ¿ªÀ» ¼³Á¤Çϴ°ǵ¥.
zxingÀÇ ½ºÄ³³Ê¸¦ Àߺ¸½Ã¸é ½ºÄµµÇ´Â¿µ¿ª ¹Ù±ùÂÊ¿¡ ¾ãÀº °ËÀº»ö ¼±ÀÌ ÀÖ½À´Ï´Ù.
±× ¼±µéÀÌ ¹Ù·Î À§ÀÇ °ªµéÀÌÁÒ. ¼±Ã³·³ º¸ÀÌÁö¸¸ »ç½Ç »ç°¢ÇüÀ» ÀÌ¾î ºÙÈù °ÅÁÒ.
°¢°¢ÀÇ ¼±µéÀº À§ÀÇ ¸¶½ºÅ©µéÀÇ °ªµé°ú °°°í.°ªµéµµ ¿ª½Ã °°½À´Ï´Ù.
ÁÖÀÇÇÒÁ¡Àº ¼±ÀÇ ±½±âÀε¥ Å©±â Á¶ÀýÀ» À§ÇØ +ÇÑ´Ù°í ÇϼÌÀ» ¶§ ÀÌ°ªµéÀÌ °æ°è°¡ µÇ´Â Á¡µé¿¡¼
+1~+2Á¤µµ Â÷À̳ª°Ô ÇØÁּžߵ˴ϴÙ. ±×·¸Áö ¾ÊÀ¸¸é »ó´çÈ÷ ±½Àº ¼±ÀÌ »ý±â¸é¼
±×ºÎºÐÀ» ½ºÄËÇÏÁö ¾Ê°Ô µË´Ï´Ù.
110.
// Draw a red "laser scanner" line through the middle to show decoding is active
paint.setColor(laserColor);
paint.setAlpha(SCANNER_ALPHA[scannerAlpha]);
scannerAlpha = (scannerAlpha + 1) % SCANNER_ALPHA.length;
int middle = frame.height() / 2 + frame.top;
canvas.drawRect(frame.left + 2, middle - 1, frame.right - 1, middle + 2, paint);
À̺κÐÀº ·¹ÀÌÁ®¼±... À» Ç¥ÇöÇÏ´Â ºÎºÐÀε¥ Àú´Â ÇÊ¿ä°¡ ¾ø´Â°Å °°¾Æ¼ »©µÎ±äÇß½À´Ï´Ù.
À̺κÐÀº ȸéÀ» ±âÁØÀ¸·Î Áß¾Ó°ªÀ» Àâ°í ±× Áß¾Ó°ª¿¡ ¹Ý¦ÀÌ´Â ¿¡´Ï¸ÞÀ̼ÇÀÌ µé¾î°¡´Â
»ç°¢ÇüÀ» ³Ö½À´Ï´Ù. ----------------------ÀÌ·±Á¤µµÀÇ ±½±âÀÇ..
±æÀ̺¯°æÀº À§¿Í °°½À´Ï´Ù.
º¯°æÀ» ÇÏ´Â°Ç ¿©±â±îÁöÀÌ°í ·¹À̾ƿôÀº ÀÌ Å¬·¹½º¸¦ draw ·Î ¹Þ¾Æ¿À±â ¶§¹®¿¡ µû·Î ¼öÁ¤ÇÒ°Ç
¾ø½À´Ï´Ù.
±×·³ ÁñÄÚµù µÇ½Ã±æ.
* ±ÛÀ» µî·ÏÇϽǶ§ ²À ÇÊ¿äÇÑ °æ¿ì°¡ ¾Æ´Ï¸é °³ÀÎÁ¤º¸¸¦ ³²±âÁö ¸¶¼¼¿ä ^^ (¿¬¶ôó,À̸ÞÀÏÁÖ¼Ò,Áֹεî·Ï¹øÈ£ µî)