tag:blogger.com,1999:blog-27304542931003150172024-03-13T14:04:31.801+04:00AnmystAndyhttp://www.blogger.com/profile/02608879260519286274noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-2730454293100315017.post-23620398261301314602013-01-12T03:17:00.000+04:002014-10-31T15:15:59.597+04:00Двигаем мышью<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;"> При
опробовании беспроводного тачпада Logitech в качестве альтернативы мыши
возникла мысль – ведь рядом лежит вполне готовый беспроводной тачпад –
смартфон. Мышь он, конечно, не заменит,
но кое-что сделать, комфортно развалившись
в кресле, вполне можно. <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">Идея
эта не нова, есть достаточно приложений для удаленного управления ПК с
андроид-устройства. Решил реализовать
минималистический андроид-тачпад с настройкой чувствительности по осям и
сглаживания движения, который в дальнейшем, при желании, можно наполнить
разнообразными возможностями удаленного управления. <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">В
качестве отправной точки используем ранее слепленную программу рисования
каракулей на экране. Только теперь эти каракули и прочие околоэкранные
конвульсии надо будет передать на ПК.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">Серверную
часть можно посмотреть тут:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<a href="https://drive.google.com/folderview?id=0BzqK3LYdJqRJb0R5MzdQWFpsMkk&usp=sharing"><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">https</span><span style="font-family: "Arial","sans-serif";">://</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">drive</span><span style="font-family: "Arial","sans-serif";">.</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">google</span><span style="font-family: "Arial","sans-serif";">.</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">com</span><span style="font-family: "Arial","sans-serif";">/</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">folderview</span><span style="font-family: "Arial","sans-serif";">?</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">id</span><span style="font-family: "Arial","sans-serif";">=0</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">BzqK</span><span style="font-family: "Arial","sans-serif";">3</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">LYdJqRJb</span><span style="font-family: "Arial","sans-serif";">0</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">R</span><span style="font-family: "Arial","sans-serif";">5</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">MzdQWFpsMkk</span><span style="font-family: "Arial","sans-serif";">&</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">usp</span><span style="font-family: "Arial","sans-serif";">=</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; mso-ansi-language: EN-US;">sharing</span></a><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt;"> </span><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">Двигаемся плавно и естественно.<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">Хочу
более подробно остановиться на эмуляции движения мыши на ПК. Для эмуляции мышиных бегов используем класс </span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US;">Robot</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">
</span><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">и его
методы mouseMove, mousePress, mouseRelease. Больше всего проблем возникло при
попытке заставить курсор мыши перемещаться достаточно быстро и плавно.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">Опробовал
вот такие методы: <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">1. Просто mouseMove –
быстрые рывки, практически неприменимо.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">2. Алгоритм Брезенхэма
– при использовании задержки 1мс на каждом шаге отрабатывает слишком медленно.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">3. Вычисление
координат с использованием формулы отрезка прямой с заданным шагом – все равно
дергается курсор.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 18pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">4. Еще один пошаговый
алгоритм с количеством шагов, вычисляемым как функция от кода сглаживания.
Использовал задержку 1 мс на каждом втором шаге.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">Самый
лучший, но совсем не идеальный, результат получился при использовании варианта
4. Буду благодарен если кто-то подскажет более красивый вариант.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">/**</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * Compute mouse step to move
mouse</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> len Move distance</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> smooth Smoothing mode </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt;">* </span><b><span style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt;">@return</span></b><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt;"> Mouse step</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt;"> */</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">static</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> getMouseStep(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">double</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> len, </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> smooth){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 30;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">switch</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (smooth)</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">case</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> 1:</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 30;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 5) a = 2;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">break</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">case</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> 2:</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 40;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 5) a = 2;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">break</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">case</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> 3:</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 50;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 5) a = 2;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">break</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">case</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> 4:</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 50;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len > 50) a =
70;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 5) a = 2;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">break</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">case</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> 5:</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 70;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 50) a =
50; </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 5) a = 2;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">break</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">case</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> 6:</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 90;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 50) a =
70; </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 5) a = 5;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">break</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">return</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">/**</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * Move mouse (actual version)</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> xstart Start X coordinate </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> ystart Start Y coordinate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> xend Finish X coordinate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> yend Finish Y coordinate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> sm Smoothing</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> rb Mouse Robot</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> */</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">static</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">void</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> MouseMove5(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> xstart, </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ystart, </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> xend, </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> yend, </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> sm, Robot rb) {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a = 30;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">boolean</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> flag;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">
</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">double</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> len = Math.<i>sqrt</i>((xend-xstart)*(xend-xstart)+(yend-ystart)*(yend-ystart));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (len < 3){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> rb.mouseMove(xend, yend);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> rb.delay(1);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a=<i>getMouseStep</i>(len,
sm);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> flag = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">true</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">for</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> i = 0; i < a; i++) {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> mov_x = ((xend * i)
/ a) + (xstart * (a - i) / a);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> mov_y = ((yend * i)
/ a) + (ystart * (a - i) / a);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> rb.mouseMove(mov_x,
mov_y);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (flag){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> rb.delay(1);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> flag = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">false</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">else</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> flag = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">true</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> rb.mouseMove(xend, yend);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">}</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;"> </span><span style="font-family: Arial, sans-serif; font-size: 12pt;"> </span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">Вопросы безопасности.<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">При
разработке или использовании систем удаленного управления надо помнить, что
желающие удаленно порулить чужим компьютером найдутся всегда. <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">При
подключении к серверу будем передавать
хеш-код пароля. Серверное приложение при первом старте (и в режиме настройки)
запросит ввод пароля и сохранит его хеш-код. Для вычисления хеш-кода используем
алгоритм </span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US;">MD</span><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt;">5:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt;">**</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * Encrypt password</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * Create MD5 hash</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@param</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> input Input String</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@return</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> MD5 Hash String</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> */</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">public</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">static</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> String <span style="background: silver; mso-highlight: silver;">md5Encrypt</span>(String input){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> String md5 = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">null</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (input == </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">null</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">)</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">return</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">null</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">try</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> MessageDigest digest =
MessageDigest.<i>getInstance</i>(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"MD5"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> digest.update(input.getBytes(),
0, input.length());</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> md5 = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> BigInteger(1,
digest.digest()).toString(16);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">catch</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">(Exception e){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> e.printStackTrace();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10pt;">}</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">return</span></b><span style="font-family: Consolas; font-size: 10pt;"> md5;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
}</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US; mso-bidi-font-weight: bold;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-bidi-font-weight: bold;">В любом
случае, я бы рекомендовал использовать такую программу исключительно в домашней
</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US; mso-bidi-font-weight: bold;">wifi</span><span lang="EN-US" style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-bidi-font-weight: bold;"> </span><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-bidi-font-weight: bold;">сети.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-bidi-font-weight: bold;">А вот и
результат: </span><a href="https://play.google.com/store/apps/details?id=com.anmyst.mystouch#?t=W251bGwsMSwxLDIxMiwiY29tLmFubXlzdC5teXN0b3VjaCJd"><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-bidi-font-weight: bold;">https://play.google.com/store/apps/details?id=com.anmyst.mystouch</span></a><span style="font-family: "Arial","sans-serif"; font-size: 12.0pt; mso-bidi-font-weight: bold;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</div>
</div>
Andyhttp://www.blogger.com/profile/02608879260519286274noreply@blogger.com0tag:blogger.com,1999:blog-2730454293100315017.post-91926913931288277082012-12-19T01:16:00.001+04:002014-10-31T19:34:06.517+04:00Анаграммы на Android<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
Как-то застал жену за
придумыванием всех слов , которые можно составить из букв слова «лекарство» ( <span lang="EN-US">flash</span>-игра такая), немного помог ей в этом.
Мысль об автоматизации возникла сразу, смысл игры при этом, конечно,
теряется, но стало интересно - насколько
много слов можно составить и насколько быстро такой поиск будет выполняться на
смартфоне.<o:p></o:p></div>
<div class="MsoNormal">
Для начала нашел словарик
(в текстовом формате) из 47612
существительных в единственном числе, именительном падеже . Словарь
конечно попался кривоватый – многих слов
нет, зато есть, например, слово «та» (то ли русское местоимение, то ли буква
арабского алфавита, то ли знак каны). Этот словарик будем загружать в массив
строк при старте программы. <o:p></o:p></div>
<div class="MsoNormal">
Для введенного слова
посчитаем количество для каждой из букв. Для каждой буквы словарного слова тоже
будем считать количество и, если для всех букв словарного слова это количество
будет меньше или равно аналогичному
значению для введенного слова, то словарное слово нам подходит. Частным случаем тут будет поиск анаграмм –
когда найденное словарное слово имеет ту же длину, что и исходное. Возможно, существует и более
производительный алгоритм, но реализовал то, что сразу пришло в голову.<o:p></o:p></div>
<div class="MsoNormal">
В итоге для слова
«лекарство» за 3 секунды на HTC Desire было найдено 175 вариантов.<o:p></o:p></div>
<div class="MsoNoSpacing">
Ниже исходник
получившейся программы.<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">/**</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * Anagram Builder</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * Copyright (C) 2012 Anmyst</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@author</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> Anmyst</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><b><span lang="EN-US" style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@version</span></b><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> 1.0</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">*/</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">package</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> com.anmyst.anagramru;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.io.BufferedReader;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.io.File;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.io.FileInputStream;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.io.FileNotFoundException;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.io.IOException;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.io.InputStreamReader;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.util.ArrayList;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> java.util.HashMap;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.app.Activity;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.os.Bundle;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.os.Environment;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.view.View;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">
android.view.View.OnClickListener;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.widget.ArrayAdapter;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.widget.Button;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.widget.CheckBox;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.widget.EditText;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.widget.ListView;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">import</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> android.widget.Toast;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">/**</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * Anagram Builder activity</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> */</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">public</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">class</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> AnagramruActivity </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">extends</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> Activity {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ArrayList <String> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">arr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">; </span><span lang="EN-US" style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">//</span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">словарь</span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ArrayAdapter <String> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">; </span><span lang="EN-US" style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">//</span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">список</span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> </span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">результатов</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">private</span></b><span style="font-family: Consolas; font-size: 10pt;"> HashMap </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">map</span><span style="font-family: Consolas; font-size: 10pt;">; </span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">// хранит количество букв для каждой буквы в слове</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">/** </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> * </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">Запуск</span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">поиска</span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">анаграмм</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> */</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> OnClickListener </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">ButtonStart_click</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> View.OnClickListener(){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #646464; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">public</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">void</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> onClick(View v) {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">final</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> EditText eWord =
(EditText)findViewById(R.id.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">editTextWord</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> String sWord =
eWord.getText().toString();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (sWord.equalsIgnoreCase(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">""</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">))</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">return</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> String sDict;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.clear();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">map</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.clear();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">for</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> i = 0; i < sWord.length(); i++){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">map</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.put(sWord.charAt(i),
CharCount(sWord,sWord.charAt(i)));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">boolean</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> anagram = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">false</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">final</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> CheckBox chkAnagram =
(CheckBox)findViewById(R.id.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">checkBoxAnagram</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">
</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (chkAnagram.isChecked())</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> anagram = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">true</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> key;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ok;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> counter = 0;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">for</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> j = 0; j < </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">arr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.size(); j++){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> sDict = </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">arr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.get(j);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ok = 1;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">for</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> k = 0; k < sDict.length(); k++){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">(</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">map</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.containsKey(sDict.charAt(k)))</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> key = (Integer)</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">map</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.get(sDict.charAt(k));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">else</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> key = 0;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (CharCount(sDict, sDict.charAt(k)) >
key){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ok = 0;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">continue</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (ok == 1){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ((!anagram) || (sDict.length() ==
sWord.length())){ </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(sDict);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> counter++; </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> } </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> showToast(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Found:"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> + counter);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10pt;">}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> };</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">/**</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * Вывод
короткого сообщения </span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * </span><b><span style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">@param</span></b><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> s Строка сообщения</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> </span><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">*/</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">void</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> showToast(String s){ </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> Toast mess = Toast.<i>makeText</i>(getApplicationContext(),
s, Toast.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">LENGTH_SHORT</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10pt;">mess.show(); </span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">/**</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * Считает
количество заданных символов в строке</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * </span><b><span style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">@param</span></b><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> s исходное слово</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * </span><b><span style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">@param</span></b><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> c символ для которого расчитывается количество</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * </span><b><span style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">@return</span></b><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> количество заданных символов в слове</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> </span><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">*/</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> CharCount(String s, </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">char</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> c){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> cnt = 0;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">for</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> i = 0; i < s.length(); i++){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (s.charAt(i) == c)</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10pt;">cnt++;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">return</span></b><span style="font-family: Consolas; font-size: 10pt;"> cnt;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">/**</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * Чтение
строк из файла словаря </span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * в массив
arr</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * </span><b><span style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">@param</span></b><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> fname имя файла</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> </span><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">*/</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ReadFile(String fname)</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> String s1;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">try</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">{</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> File f = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> File(Environment.<i>getExternalStorageDirectory</i>()
+ </span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"/DictRu/"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> + fname);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> FileInputStream fileIS = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> FileInputStream(f);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> BufferedReader buf = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> BufferedReader(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">
InputStreamReader(fileIS, </span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"windows-1251"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> String readString = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> String();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">while</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">((readString = buf.readLine()) !=
</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">null</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> s1 = readString.toLowerCase();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">arr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(s1);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> } </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">catch</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (FileNotFoundException e) {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> e.printStackTrace();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">return</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> 1;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> } </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">catch</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (IOException e){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> e.printStackTrace();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">return</span></b><span style="font-family: Consolas; font-size: 10pt;"> 2;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">return</span></b><span style="font-family: Consolas; font-size: 10pt;"> 0;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">/**</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> * Загрузить
словарь из файла</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"> </span><span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">*/</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">private</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">void</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> LoadDictionary(){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">arr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.clear();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">if</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (ReadFile(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"dictru.txt"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">) != 0){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> showToast(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Load Dictionary Error!"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">else</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">{</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> showToast(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Dictionary loaded!"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">return</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">/** Called when the activity is first created. */</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #646464; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">public</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">void</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> onCreate(Bundle
savedInstanceState) {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">super</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.onCreate(savedInstanceState);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> setContentView(R.layout.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">main</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">final</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> Button bStart =
(Button)findViewById(R.id.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">buttonStart</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> bStart.setOnClickListener(</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">ButtonStart_click</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">map</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> HashMap();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">arr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ArrayList <String>();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ArrayAdapter<String> (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">this</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">,android.R.layout.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">simple_list_item_1</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">,android.R.id.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">text1</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.setNotifyOnChange(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">true</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ListView list = (ListView)</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">this</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.findViewById(R.id.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">listViewResults</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10pt;">list.setAdapter(</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;">adapt</span><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> LoadDictionary();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: RU;"><o:p></o:p></span></div>
<br />
<div class="MsoNoSpacing">
<span style="font-family: Consolas; font-size: 10pt;">}</span><span lang="EN-US"><o:p></o:p></span></div>
</div>
Andyhttp://www.blogger.com/profile/02608879260519286274noreply@blogger.com0tag:blogger.com,1999:blog-2730454293100315017.post-48416476147656935072012-02-11T01:14:00.000+04:002014-10-31T16:11:21.188+04:00Приглядываемся к программированию под Android.<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="margin-bottom: .0001pt; margin: 0cm;">
<b><span style="font-family: Arial, sans-serif;"><br />
Приглядываемся к программированию под<span class="apple-converted-space"> </span></span></b><b><span lang="EN-US" style="font-family: Arial, sans-serif;">Android</span></b><b><span style="font-family: Arial, sans-serif;">.</span></b><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Так случилось, что попался мне в лапы<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">HTC<span class="apple-converted-space"> </span>Desire</span><span style="font-family: Arial, sans-serif;">, и захотелось мне разобраться с
программированием под этого зверя. Не берусь учить кого-то программировать под<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Android</span><span style="font-family: Arial, sans-serif;">, так что прошу
рассматривать все ниженаписанное как хронику попыток освоения<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Android</span><span class="apple-converted-space"><span style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">в промежутках между работой, семьей и прочими радостями жизни.
Рекомендуется к прочтению начинающим (возможно, это сэкономит некоторое
время и позволит обойти пару-тройку граблей) и профессиональным программистам
(может кто-то ткнет меня в явные косяки и сэкономит мне некоторое количество
времени и нервов).<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<b><span style="font-family: Arial, sans-serif;">Стартуем.</span></b><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Есть только один способ начать – это начать. Для начала
поковыряемся в ворохе разнообразных статей, тут даже ссылок приводить нет
смысла, ибо имя им - легион. Для поднятия духа просматриваем статьи об удачных
попытках заработать на пиво, бутерброды с маслом, реактивные самолеты. Далее
берем несколько книг по теме и прочитываем начальные главы, касающиеся
архитектуры Android. Одновременно подбираем статью (или главу) для быстрого
старта. Приведу некоторые ссылки.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Книги:<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-family: Arial, sans-serif;"><a href="http://books.google.com/books?id=2XeNswkT_2YC&dq=isbn:1430226293&hl=ru">http<span lang="RU">://</span>books<span lang="RU">.</span>google<span lang="RU">.</span>com<span lang="RU">/</span>books<span lang="RU">?</span>id<span lang="RU">=2</span>XeNswkT<span lang="RU">_2</span>YC<span lang="RU">&</span>dq<span lang="RU">=</span>isbn<span lang="RU">:1430226293&</span>hl<span lang="RU">=</span>ru</a></span><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-family: Arial, sans-serif;"><a href="http://books.google.com/books/about/Pro_Android_2.html?id=Bam8K5SIiTkC">http<span lang="RU">://</span>books<span lang="RU">.</span>google<span lang="RU">.</span>com<span lang="RU">/</span>books<span lang="RU">/</span>about<span lang="RU">/</span>Pro<span lang="RU">_</span>Android<span lang="RU">_2.</span>html<span lang="RU">?</span>id<span lang="RU">=</span>Bam<span lang="RU">8</span>K<span lang="RU">5</span>SIiTkC</a></span><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-family: Arial, sans-serif;"><a href="http://www.bookzone.com.ua/Netshop/catalogue/catalogue_30400.html">http<span lang="RU">://</span>www<span lang="RU">.</span>bookzone<span lang="RU">.</span>com<span lang="RU">.</span>ua<span lang="RU">/</span>Netshop<span lang="RU">/</span>catalogue<span lang="RU">/</span>catalogue<span lang="RU">_30400.</span>html</a></span><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Быстрый старт<span class="apple-converted-space"> </span><a href="http://itblog.name/archives/678">http://itblog.name/archives/678</a><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Сразу упомяну весьма полезный блог<span class="apple-converted-space"> </span><a href="http://megadarja.blogspot.com/">http://megadarja.blogspot.com/</a><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Ну и конечно<span class="apple-converted-space"> </span><a href="http://developer.android.com/">http://developer.android.com</a><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">На выходе имеем настроенную среду<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Eclipse</span><span class="apple-converted-space"><span style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">с<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Android<span class="apple-converted-space"> </span>SDK</span><span class="apple-converted-space"><span style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">и маленькое, но гордое приложение “</span><span lang="EN-US" style="font-family: Arial, sans-serif;">Hello<span class="apple-converted-space"> </span>Android</span><span style="font-family: Arial, sans-serif;">!”. Ради всего святого, не надо публиковать
его на<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Google<span class="apple-converted-space"> </span>Market</span><span style="font-family: Arial, sans-serif;">, там такого добра хватает.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Особых проблем пока не возникло, правда, чтобы избавиться от
постоянной ошибки<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">DDMS</span><span class="apple-converted-space"><span style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">при соединения с устройством (похоже на
упорные попытки использования<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">ipv</span><span style="font-family: Arial, sans-serif;">6)
пришлось дописать в<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">eclipse</span><span style="font-family: Arial, sans-serif;">.</span><span lang="EN-US" style="font-family: Arial, sans-serif;">ini</span><span style="font-family: Arial, sans-serif;">:<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">-<i>Djava.net.preferIPv4Stack=true <o:p></o:p></i></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">На следующем этапе почитаем какую-нибудь книжку, параллельно
пробуем примеры из книжки. Хорошо бы конечно прочитать книжку целиком, но
времени мало поэтому для начала ограничимся главами по использованию базовых
элементов управления.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<b><span style="font-family: Arial, sans-serif;">Проба пера.</span></b><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">А теперь попробуем сделать что-нибудь разумное, доброе, но
простое. Для начала решил сделать нечто несложное, но нужное для себя.
Итак, задача №1 – делаю форму для поиска по справочнику на несколько тысяч
контактов. Справочник выгрузил в<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">csv</span><span style="font-family: Arial, sans-serif;">-файлы.
И хранить эти файлы будем в выделенной директории на<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">SD</span><span style="font-family: Arial, sans-serif;">-карте, таким образом, мы
всегда сможем добавить дополнительные файлы контактов. Считаем, что все файлы с
расширением<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">txt</span><span class="apple-converted-space"><span style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">в этой директории – это файлы контактов.
Поиск будем делать не по каждому полю (ФИО, должность, телефон,<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">e</span><span style="font-family: Arial, sans-serif;">-</span><span lang="EN-US" style="font-family: Arial, sans-serif;">mail</span><span style="font-family: Arial, sans-serif;">), а по всей строке.
Результаты выведем в табличном виде. Если результатов больше 20, то смысла в
этом немного, поэтому и выведем только первые 20 и сообщение.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Сейчас нам понадобится не только учебник, но и справочник. В
качестве справочника использовал<span class="apple-converted-space"> </span><a href="http://developer.android.com/">http://developer.android.com</a><span class="apple-converted-space"> </span>и начал понимать откуда берут(мягко
говоря) многие примеры авторы книг. А еще мне пригодился учебник по<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">java</span><span style="font-family: Arial, sans-serif;">. Ну и конечно активно
используем поиск.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Я не буду описывать размещение элементов управления, обработку
нажатия на кнопку «Поиск» и т.п., расскажу только о возникших проблемах.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">1. Сходу не удалось ничего записать на<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">SD</span><span style="font-family: Arial, sans-serif;">-карту. При запуске
эмулятора обнаружил, что никаких прав на подключенную<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">SD</span><span style="font-family: Arial, sans-serif;">-карту нет.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">После выполнения<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">remount<span class="apple-converted-space"> </span>sd</span><span class="apple-converted-space"><span style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">карты из командной строки все нормализовалось.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<i><span lang="EN-US" style="font-family: Arial, sans-serif;">adb shell<o:p></o:p></span></i></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<i><span lang="EN-US" style="font-family: Arial, sans-serif;">mount<span class="apple-converted-space"> </span>-o remount,rw<span class="apple-converted-space"> </span>/sdcard <o:p></o:p></span></i></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">2. Работа с<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">GridView</span><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Для начала надо разобраться с написанием адаптера для<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">GridView</span><span style="font-family: Arial, sans-serif;">. Довольно содержательная
информация по этому вопросу есть на<span class="apple-converted-space"> </span><a href="http://megadarja.blogspot.com/">http://megadarja.blogspot.com/</a><span class="apple-converted-space"> </span>.<span class="apple-converted-space"> </span><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Нам нужен адаптер, который будет наполняться данными из файлов и
очищаться при каждом следующем поиске.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">В итоге получился вот такой кусок кода:</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #3f5fbf; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">/** Called when the activity is first created. */</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #646464; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">public</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">void</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> onCreate(Bundle
savedInstanceState) {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">super</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.onCreate(savedInstanceState);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> setContentView(R.layout.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">main</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">final</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> Button buttonFind = (Button)findViewById(R.id.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">ButtonFind</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> buttonFind.setOnClickListener(</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">buttonFind_click</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> GridView grid = (GridView)</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">this</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.findViewById(R.id.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">GridView01</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">Icounter </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= 0;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> a</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">rr </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ArrayList <String>();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> ArrayAdapter<String> (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">this</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">, R.layout.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">grid_item</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">arr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.setNotifyOnChange(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">true</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> grid.setAdapter(</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">}</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">При нажатии на кнопку поиска очищаем адаптер adapt.clear().<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">После получения из файла строк контактов, добавляем строки:</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">Файл</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(s1);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">ФИО</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(s2);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">должность</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(s3);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">моб</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">.</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">тлф</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">."</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(s4);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">стац</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">.</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">тлф</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(s5);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"e-mail"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">adapt</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(s6);</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Вызвало некоторое недоумение отсутствие рамки в таблице. Без рамки
таблица смотрится как-то некрасиво. Для того чтобы сделать рамку пришлось
создать разметку с указанием фона для ячейки таблицы и отступов, а также
задать фон для всей таблицы.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Разметка для ячейки таблицы (</span><span lang="EN-US" style="font-family: Arial, sans-serif;">grid</span><span style="font-family: Arial, sans-serif;">_</span><span lang="EN-US" style="font-family: Arial, sans-serif;">item</span><span style="font-family: Arial, sans-serif;">.</span><span lang="EN-US" style="font-family: Arial, sans-serif;">xml</span><span style="font-family: Arial, sans-serif;">):</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">xml</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> <span style="color: #7f007f;">version</span>=<i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span>=<i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">TextView</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/GridText01"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> <span style="color: #7f007f;">android:padding</span>=<i><span style="color: #2a00ff;">"10dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> <span style="color: #7f007f;">android:background</span>=<i><span style="color: #2a00ff;">"#000050"</span></i><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"> </span><span style="color: #7f007f; font-family: Consolas; font-size: 10.0pt;">android:textSize</span><span style="font-family: Consolas; font-size: 10pt;">=</span><i><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">"10sp"</span></i><span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: teal;">></span><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt;">TextView</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt;">></span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">И все равно получилось кривовато если в одной строке в столбцах
ячейки с разным количеством строк.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<b><span style="font-family: Arial, sans-serif;">Займемся 2</span></b><b><span lang="EN-US" style="font-family: Arial, sans-serif;">D</span></b><span class="apple-converted-space"><b><span style="font-family: Arial, sans-serif;"> </span></b></span><b><span style="font-family: Arial, sans-serif;">графикой.</span></b><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Ну что же попробуем нарисовать что-нибудь не слишком уродливое.
Заодно подумаем, как можно от простого рисования перейти к чему-то
игроподобному. Самое время начать строительство скелета, на базе которого
будем потом строить любое приложение с 2</span><span lang="EN-US" style="font-family: Arial, sans-serif;">D</span><span class="apple-converted-space"><span style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">графикой. В сторону готовых<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Framework</span><span style="font-family: Arial, sans-serif;">-ов пока не смотрим, сейчас надо разобраться, как тут все
устроено, чтобы потом не страдать хронической зависимостью. В плане скелетов
опять очень помог блог<span class="apple-converted-space"> </span><a href="http://megadarja.blogspot.com/">http://megadarja.blogspot.com/</a><span class="apple-converted-space"> </span>. По нему строил модель
приложения на основе класса, унаследованного от<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">SurfaceView</span><span style="font-family: Arial, sans-serif;">, и потока для отрисовки
содержимого. Тут наткнулся на проблему некорректного завершения
приложения при повторном запуске. Вылечил вызовом<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">finish</span><span style="font-family: Arial, sans-serif;">()</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif;"> </span></span><span style="font-family: Arial, sans-serif;">в обработчике<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">OnStop<span class="apple-converted-space"> </span></span><span style="font-family: Arial, sans-serif;">для<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">activity</span><span style="font-family: Arial, sans-serif;">.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Полностью повторять все описанные в блоге примеры скучно, грустно
и провоцирует копирование кусков кода без понимания происходящего. Для
начала наполним этот скелет отрисовкой каракулей, порожденных беспорядочным
возюканьем пальцем по экрану. Заодно и разберемся, как обрабатывать события
нажатия на экран.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">А теперь добавим к нашему скелету массив прямоугольных областей с
заданным в зависимости от состояния изображением и методом для отрисовки этого
изображения. И еще обработчик, который определяет нажатие в пределах этих
областей. Это поможет при построении следующего приложения.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Задача №2 – делаем фотопаззл. Берем несколько фотографий (для
начала взял свое семейство – мама, папа, дочка, сын) и разрезаем их на прямоугольники.
При старте приложения формируем массив наших прямоугольных областей и для
каждой области задаем по кусочку от каждой фотографии. При прорисовке экрана
выводим изображения для всех областей. При нажатии на экран меняем состояние
для соответствующего участка изображения и, соответственно, отображается
кусочек от следующей фотографии.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Ну что же, дочка с удовольствием поигралась с этой штукой.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<b><span style="font-family: Arial, sans-serif;">Выходим на рынок.</span></b><span style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">А теперь попробуем сделать что-нибудь любопытное для окружающих и
посмотреть на их реакцию. Возьмем созданный ранее фотопаззл и начнем его
допиливать. <o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Все в этом приложении будет состоять из прямоугольников – фон
стартовой страницы, кнопки для выбора паззлов, сами паззлы. Таким образом, для
инициализации каждого окна просто формируем нужный массив прямоугольников и
устанавливаем дополнительные флаги. После выбора паззла на стартовой странице
перемешиваем кусочки изображения в случайном порядке. А отрисовываться
все это будет одной функцией.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Инициализация окна паззла выглядит таким образом:</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">public</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">void initWin2</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">(){</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> GObject o;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id1, id2, id3, id4, id5;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> i, j;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">win2flag </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= 1;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">doneflag </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= 0;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">obs</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.clear();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> Resources res = </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">mContext</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.getResources();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id1 = R.drawable.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">city01_01</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id2 = R.drawable.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">city02_01</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id3 = R.drawable.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">city03_01</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id4 = R.drawable.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">city04_01</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id5 = R.drawable.</span><i><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">city05_01</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[0].delete(0, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[0].length());</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[0].append(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Dome of the Rock, Jerusalem, Israel"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[1].delete(0, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[1].length());</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[1].append(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Notre Dame de Paris, France"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[2].delete(0, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[2].length());</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[2].append(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Karlstejn Castle, Czech Republic"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[3].delete(0, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[3].length());</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[3].append(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Peterhof, St.Petersburg, Russia"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[4].delete(0, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[4].length());</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">messbuf</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">[4].append(</span><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">"Charles Bridge, Prague, Czech Republic"</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">for</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (i = 0; i<4; i++)</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">for</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> (j=0; j<6; j++)</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o = </span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">new</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> GObject();</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">x1 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= 40 + j * 120;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">y1 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= i * 120;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">x2 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">x1 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">+ 120;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">y2 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">y1 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">+ 120;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.SetDrawable(1,
res.getDrawable(id1));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.SetDrawable(2,
res.getDrawable(id2));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.SetDrawable(3,
res.getDrawable(id3));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.SetDrawable(4,
res.getDrawable(id4));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.SetDrawable(5,
res.getDrawable(id5));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id1++;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id2++;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id3++;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id4++;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> id5++;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">clickable </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= 1;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">n_images </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= 5;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">state </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">rnd</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.nextInt(o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">n_images</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">) + 1;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> o.</span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">id </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">= 100;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">obs</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.add(o);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10pt;">}</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">После сборки паззла выдаем сообщение с описанием фотографии и при
следующем клике опять все перемешиваем.</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Для коротких сообщений очень удобно пользовать<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">toast</span><span style="font-family: Arial, sans-serif;">-ами.</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">Toast mess = Toast.makeText(mContext, messbuf[r1-1],
Toast.LENGTH_SHORT);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Consolas; font-size: 10pt;">mess.show();</span><span style="font-size: 13.5pt;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Для возврата в главное меню будем использовать пролистывающее
горизонтальное движение. Фактически проверяем разницу координат нажатия и
отпускания и если по горизонтали эта разница больше трети ширины экрана,
возвращаемся в главное меню.</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Вспоминаем про неприятный факт наличия груды разнообразных<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Android</span><span style="font-family: Arial, sans-serif;">-устройств с различными
разрешениями экрана, соотношениями сторон и начинаем с ним бороться. В
качестве базового разрешения я взял родное разрешение «своего» устройства – в
горизонтальной ориентации 800х480. Теперь надо рассчитывать координаты
наших прямоугольников с учетом реального разрешения экрана.</span><span lang="EN-US" style="font-family: Arial, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">
ax=(canvas.getWidth()/(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">)800.0);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">
ay=(canvas.getHeight()/(</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">)480.0);</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> fx1 = </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">x1 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">* ax;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> fx2 = </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">x2 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">* ax;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> fy1 = </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">y1 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">* ay;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">float</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> fy2 = </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">y2 </span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">* ay;<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">img1</span><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">.setBounds((</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">)(fx1), (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">)(fy1), (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">)(fx2), (</span><b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;">int</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 10pt;">)(fy2));</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">img1</span><span style="font-family: Consolas; font-size: 10pt;">.draw(canvas);</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Аналогичные процедуры нужно проделывать и при обработке нажатий на
экран. </span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Существует несколько вариантов поддержки различных разрешений
экрана. В данном случае выбрал самый простой, на мой взгляд, вариант для
используемого массива прямоугольников .</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Ну что же, пора выложить то, что получилось на<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Google<span class="apple-converted-space"> </span>Market</span><span style="font-family: Arial, sans-serif;">. На текущий момент на Украине недоступно
создание Google Merchant аккаунта для продажи приложений. Поэтому регистрируем
обычный, да и требовать деньги за получившийся фотопаззл бессмысленно и
неприлично.</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Для регистрации нужно:</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">1.</span><span color:black="" mso-bidi-font-family:arial="" new="" roman="" serif="" style="font-family: ";" times=""> <span class="apple-converted-space"> </span></span><span style="font-family: Arial, sans-serif;">Аккаунт<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">gmail</span><span style="font-family: Arial, sans-serif;">.</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">2.</span><span color:black="" mso-bidi-font-family:arial="" new="" roman="" serif="" style="font-family: ";" times=""> <span class="apple-converted-space"> </span></span><span style="font-family: Arial, sans-serif;"> Веб-сайт (страничка на<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">blogspot<span class="apple-converted-space"> </span></span><span style="font-family: Arial, sans-serif;">отлично подходит).</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">3.</span><span color:black="" mso-bidi-font-family:arial="" new="" roman="" serif="" style="font-family: ";" times=""> <span class="apple-converted-space"> </span></span><span style="font-family: Arial, sans-serif;">Заплатить<span class="apple-converted-space"> </span>$25 (использовал
карточку<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Visa</span><span style="font-family: Arial, sans-serif;">).</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Процесс регистрации, прошел очень быстро и беспроблемно, пошаговых
материалов по нему немеряно.</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Теперь загружаем приложение, и при выборе<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">apk</span><span style="font-family: Arial, sans-serif;">-файла выясняется, что его
нужно еще и подписать цифровой подписью. Отладочный ключ для этого не годится.
Создание хранилища ключей, собственно ключа и подписание<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">apk</span><span style="font-family: Arial, sans-serif;">-файла можно выполнить
прямо в<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Eclipse</span><span style="font-family: Arial, sans-serif;">.</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">Подробно это описано тут:<span class="apple-converted-space"> </span><a href="http://src-code.net/publikaciya-vashego-prilozheniya-chas-23-podgotovka-k-publikacii-prilozheniya-chast-2/">http://src-code.net/publikaciya-vashego-prilozheniya-chas-23-podgotovka-k-publikacii-prilozheniya-chast-2/</a></span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">А еще нужно подготовить минимум 2 скриншота (проще всего
использовать форму<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">DDMS<span class="apple-converted-space"> </span></span><span style="font-family: Arial, sans-serif;">в<span class="apple-converted-space"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif;">Eclipse</span><span style="font-family: Arial, sans-serif;">) и большую иконку
приложения 512х512.</span><o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Arial, sans-serif;">А вот и результат<span class="apple-converted-space"> </span><a href="https://market.android.com/details?id=com.anmyst.morphi">https://market.android.com/details?id=com.anmyst.morphi</a></span><o:p></o:p></div>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<u1:p></u1:p>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<div class="MsoNormal">
</div>
</div>
</div>
Andyhttp://www.blogger.com/profile/02608879260519286274noreply@blogger.com0