<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2278839498490350396</id><updated>2011-11-03T03:04:55.937+04:00</updated><category term='X10'/><category term='обзор'/><category term='Статьи'/><category term='PDF'/><category term='GSmart G1305'/><category term='На заказ'/><category term='development'/><category term='Add-on'/><category term='htc'/><category term='Оповещения'/><category term='Bug'/><category term='Новости'/><category term='TTF'/><category term='gigabyte'/><category term='maxim yudin'/><category term='Codfish'/><category term='Программы'/><category term='Widgets'/><category term='Advice'/><category term='SDK'/><category term='NumberPicker'/><category term='Toast'/><category term='Советы'/><category term='bppod'/><category term='video'/><category term='adc'/><category term='Пресс-релиз'/><category term='developer'/><category term='Sony Ericsson'/><category term='ukraine'/><category term='Android'/><category term='Custom font'/><category term='Spinner'/><category term='google'/><category term='jq soft'/><category term='SuperJob'/><title type='text'>Максим Юдин</title><subtitle type='html'>Блог разработчика программного обеспечения под платформу Android</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-5011347231751447842</id><published>2011-01-27T15:28:00.003+03:00</published><updated>2011-01-27T15:33:16.544+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Toast'/><category scheme='http://www.blogger.com/atom/ns#' term='Оповещения'/><category scheme='http://www.blogger.com/atom/ns#' term='Статьи'/><title type='text'>Финальная статья по Toast</title><content type='html'>Пока моя книга пишется не очень быстро, но недавно немного переделал статью по Toast и добавил исходные коды. &lt;a href="http://androidbook.wordpress.com/%D0%BE%D0%B3%D0%BB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5/%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB-2/%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB-2%D0%B3%D0%BB%D0%B0%D0%B2%D0%B0-6/6_1/"&gt;Тут&lt;/a&gt; свежая версия. И кстати пока решил не делать статьи в PDF это много времени занимает. Так что все будет в онлайне на сайте книги.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-5011347231751447842?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/5011347231751447842/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2011/01/toast.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/5011347231751447842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/5011347231751447842'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2011/01/toast.html' title='Финальная статья по Toast'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-8590735231623499581</id><published>2010-09-23T12:00:00.009+04:00</published><updated>2010-09-23T13:02:42.706+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug'/><category scheme='http://www.blogger.com/atom/ns#' term='Spinner'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Advice'/><title type='text'>Баг в Android или проблема Spinner в полноэкранном режиме</title><content type='html'>&lt;div style="text-align: justify;"&gt;Вчера мой знакомый Максим Уханов написал мне в GTalk по поводу одной необычной проблемы. Он разрабатывает некое полноэкранное приложение, которое вызывает диалог c виджетом &lt;b&gt;Spinner&lt;/b&gt;. И все было бы классно, но проявился баг - при нажатии на Spinner в полноэкранном режиме при появлении диалога выбора на 1-2 секунды появляется Status Bar. Это ситуация возникает в том случае, если в Spinner располагается большое количество элементов. Выглядит это примерно так:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/_OyvNDtwP51Q/TJr-I7YjlsI/AAAAAAAACIk/EbpWAYwoUpg/s400/spinnerandroidbug.png" style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5520003722629060290" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Я начал исследовать исходные коды Spinner и обнаружил, что при отображении диалога с элементами при нажатии на Spinner создается диалог, который не учитывает вариант полноэкранного отображения. Выглядит код следующим образом.&lt;/div&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;@Override&lt;br /&gt;public boolean performClick() {&lt;br /&gt;boolean handled = super.performClick();&lt;br /&gt;if (!handled) {&lt;br /&gt;handled = true;&lt;br /&gt;Context context = getContext();&lt;br /&gt;final DropDownAdapter adapter = new DropDownAdapter(getAdapter());&lt;br /&gt;AlertDialog.Builder builder = new AlertDialog.Builder(context);&lt;br /&gt;if (mPrompt != null) {&lt;br /&gt;   builder.setTitle(mPrompt);&lt;br /&gt;}&lt;br /&gt;mPopup = builder.setSingleChoiceItems(adapter,&lt;br /&gt;   getSelectedItemPosition(), this).show();&lt;br /&gt;}&lt;br /&gt;return handled;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;В голову пришло только одно решение, это создать свой класс на основе Spinner и перекрыть его метод &lt;b&gt;performClick()&lt;/b&gt;. Но сложность заключается в том, что ссылка на диалог Spinner сохраняется в приватной переменной &lt;b&gt;mPopup&lt;/b&gt;. Эту проблему мы обошли, используя рефлексию для доступа к этой переменной после создания диалога и вызова необходимого метода для установки свойств диалога для корректного отображения его в полноэкранном режиме. Чтобы повысить безопасность использования такого метода решения нашей проблемы, мы абстрагировались от названия поля &lt;b&gt;mPopup&lt;/b&gt; и просто по циклу ищем переменную типа &lt;b&gt;AlertDialog&lt;/b&gt;, таким образом даже если разработчики поменяют название переменной, наш код будет работать. Ниже представлен код нового класса:&lt;/div&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;package maximyudin.spinnerbug;&lt;br /&gt;&lt;br /&gt;import java.lang.reflect.Field;&lt;br /&gt;&lt;br /&gt;import android.app.AlertDialog;&lt;br /&gt;import android.content.Context;&lt;br /&gt;import android.util.AttributeSet;&lt;br /&gt;import android.view.WindowManager;&lt;br /&gt;import android.widget.Spinner;&lt;br /&gt;&lt;br /&gt;public class NoTitleSpinner extends Spinner {&lt;br /&gt;public NoTitleSpinner(Context context, AttributeSet attrs, int defStyle) {&lt;br /&gt; super(context, attrs, defStyle);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public NoTitleSpinner(Context context, AttributeSet attrs) {&lt;br /&gt; super(context, attrs);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public NoTitleSpinner(Context context) {&lt;br /&gt; super(context);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@Override&lt;br /&gt;public boolean performClick() {&lt;br /&gt; boolean status = super.performClick();&lt;br /&gt; Field privateStringField = null;&lt;br /&gt; try {&lt;br /&gt;    Field[] fields = Spinner.class.getDeclaredFields();&lt;br /&gt;    for (Field field : fields) {&lt;br /&gt;      if (field.getType().getName().equals(AlertDialog.class.getName())) {&lt;br /&gt;         privateStringField = field;&lt;br /&gt;         break;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    if (privateStringField == null) {&lt;br /&gt;       return false;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    privateStringField.setAccessible(true);&lt;br /&gt;    AlertDialog dialog = (AlertDialog) privateStringField.get(this);&lt;br /&gt;    dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,&lt;br /&gt;       WindowManager.LayoutParams.FLAG_FULLSCREEN);&lt;br /&gt; } catch (IllegalArgumentException e) {&lt;br /&gt; } catch (IllegalAccessException e) {&lt;br /&gt; }&lt;br /&gt; return status;&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;Теперь вам вместо Spinner надо в коде и в xml  использовать наш &lt;b&gt;NoTitleSpinner&lt;/b&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Полностью код проекта выложен &lt;a href="http://dl.dropbox.com/u/2158590/SpinnerBug.zip"&gt;тут&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;P.S. Мы добавили этот  баг в баг-репорт - следите за новостями тут - &lt;a href="http://code.google.com/p/android/issues/detail?id=11419"&gt;http://code.google.com/p/android/issues/detail?id=11419&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-8590735231623499581?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/8590735231623499581/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/09/android-spinner.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/8590735231623499581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/8590735231623499581'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/09/android-spinner.html' title='Баг в Android или проблема Spinner в полноэкранном режиме'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OyvNDtwP51Q/TJr-I7YjlsI/AAAAAAAACIk/EbpWAYwoUpg/s72-c/spinnerandroidbug.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-241773589047145217</id><published>2010-08-03T11:20:00.034+04:00</published><updated>2010-08-05T09:59:43.619+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Codfish'/><category scheme='http://www.blogger.com/atom/ns#' term='GSmart G1305'/><category scheme='http://www.blogger.com/atom/ns#' term='gigabyte'/><category scheme='http://www.blogger.com/atom/ns#' term='обзор'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Обзор Gigabyte GSmart G1305 (Codfish)</title><content type='html'>Некоторое время назад ко мне на тестирования попал тестовый образец первого смартфона от Gigabyte - &lt;span style="font-weight: bold;"&gt;GSmart G1305&lt;/span&gt;. По внешнему виду он меня изначально сильно испугал. Выглядел, как некачественная китайская подделка. Но после пристального рассмотрения аппарат показался мне довольно интересным.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OyvNDtwP51Q/TFfD5wMu5EI/AAAAAAAACGI/XA_wVdBhuwc/s1600/IMG_9051.JPG"&gt;&lt;img style="cursor: pointer; width: 267px; height: 400px;" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/TFfD5wMu5EI/AAAAAAAACGI/XA_wVdBhuwc/s400/IMG_9051.JPG" alt="" id="BLOGGER_PHOTO_ID_5501080866814616642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Сразу, что бросилось в глаза - это сильно пачкающийся экран, на первой фотографии это хорошо заметно. Для начала приведу небольшую характеристику девайса. Аппарат базируется на ОС Android 1.6 (говорят будет апдейт до 2.1). Процессор у устройства довольной неплохой для такой ценовой категории - 600 МГц (Qualcomm MSM7227). Постоянная и оперативная память по 256 Мб, есть поддержка Bluetooth 2.0, Wi-Fi (802.11b/g), GPS. Девайс оснащен сенсорным экраном в 3,2 дюйма и 5 Мп камерой (с автофокусом и фотовспышкой).   Также, что не маловажно, есть трекбол. Многие считают этот элемент управления бесполезным, но он очень удобен при навигации в ландшафтном режиме.&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OyvNDtwP51Q/TFfF4CJMfGI/AAAAAAAACGQ/TeecU9zz9zI/s1600/IMG_9054.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_OyvNDtwP51Q/TFfF4CJMfGI/AAAAAAAACGQ/TeecU9zz9zI/s400/IMG_9054.JPG" alt="" id="BLOGGER_PHOTO_ID_5501083036295134306" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfGG5_bbHI/AAAAAAAACGY/j9B-LQ5tmWY/s1600/IMG_9056.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfGG5_bbHI/AAAAAAAACGY/j9B-LQ5tmWY/s400/IMG_9056.JPG" alt="" id="BLOGGER_PHOTO_ID_5501083291804724338" border="0" /&gt;&lt;/a&gt;Устройство имеет стандартный разъем 3.5 для наушников и подключается к компьютеру через micro-USB.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OyvNDtwP51Q/TFfHSmK_wMI/AAAAAAAACGo/ZOsymmKP9YI/s1600/IMG_9057.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/TFfHSmK_wMI/AAAAAAAACGo/ZOsymmKP9YI/s400/IMG_9057.JPG" alt="" id="BLOGGER_PHOTO_ID_5501084592154591426" border="0" /&gt;&lt;/a&gt;Не знаю, какой объем flash-карты идет в поставке при продаже, но в моем образце было 2 Гб от фирмы Transcend.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OyvNDtwP51Q/TFfG0muNVDI/AAAAAAAACGg/cy8we3bJ2JQ/s1600/IMG_9060.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://1.bp.blogspot.com/_OyvNDtwP51Q/TFfG0muNVDI/AAAAAAAACGg/cy8we3bJ2JQ/s400/IMG_9060.JPG" alt="" id="BLOGGER_PHOTO_ID_5501084076906206258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Емкость аккумулятора 1320 мАч, что вполне хватит на сутки работы без подзарядки. Теперь посмотрим на устройстве на этапе загрузки системы и рассмотрит внешний интерфейс системы. Включение устройства начинается с непривлекательной надписи Welcome, которая как-то переливается. Наверняка, в розничной продаже логотип при запуске будет по красивей, но я описываю то, что досталось мне.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfId6_DcdI/AAAAAAAACGw/Ljy-FnW4Le4/s1600/IMG_9061.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfId6_DcdI/AAAAAAAACGw/Ljy-FnW4Le4/s400/IMG_9061.JPG" alt="" id="BLOGGER_PHOTO_ID_5501085886231835090" border="0" /&gt;&lt;/a&gt;Как видно экран стал совсем заляпанным, наверно в этом смартфоне меня это больше всего раздражало. Кстати, забыл упомянуть, что девайс оснащен акселерометром (G-sensor) и цифровым компасом.  Также часть кнопок сенсорные, что довольно удобно. Есть одна фишка, которая показалась мне удобной - третья кнопка слева (треугольник в кружке) вызывает при нажатии браузер и вы всегда можете быстро залезть в интернет.&lt;br /&gt;&lt;br /&gt;Забыл упомянуть о габаритах устройства - они составляют 56.8 х 116 x 12.4. Для сравнения приведу фотографии рядом с Sony Ericsson X10i и T-Mobile G1.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OyvNDtwP51Q/TFfMSAUIofI/AAAAAAAACG4/wKGWaOjlD6Y/s1600/IMG_9065.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_OyvNDtwP51Q/TFfMSAUIofI/AAAAAAAACG4/wKGWaOjlD6Y/s400/IMG_9065.JPG" alt="" id="BLOGGER_PHOTO_ID_5501090079550513650" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfMX7vbV8I/AAAAAAAACHA/5c-g4nOQ2UM/s1600/IMG_9066.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfMX7vbV8I/AAAAAAAACHA/5c-g4nOQ2UM/s400/IMG_9066.JPG" alt="" id="BLOGGER_PHOTO_ID_5501090181402023874" border="0" /&gt;&lt;/a&gt;Как видите по размерам устройства очень даже неплохо выглядит и главное смартфон удобно держать в руках, несмотря на то, что он такой обтекаемый. После загрузки главный экран устройства выглядит как на рисунке ниже.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OyvNDtwP51Q/TFfPaLldorI/AAAAAAAACHI/Z0RjhR0_8cE/s1600/IMG_9068.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/TFfPaLldorI/AAAAAAAACHI/Z0RjhR0_8cE/s400/IMG_9068.JPG" alt="" id="BLOGGER_PHOTO_ID_5501093518549820082" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfPzKgW6MI/AAAAAAAACHQ/qUb2V-Fun_c/s1600/IMG_9069.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfPzKgW6MI/AAAAAAAACHQ/qUb2V-Fun_c/s400/IMG_9069.JPG" alt="" id="BLOGGER_PHOTO_ID_5501093947756701890" border="0" /&gt;&lt;/a&gt;Сразу бросается в глаза небрежно нарисованный интерфейс, каждая иконка с прямоугольники (закос под iPhone), плохо нарисованный интерфейс виджета календаря и виджета быстрых настроек (Power Control). Наверно кому-то интерфейс покажется и красивым, но по мне он отталкивает и лучше бы они оставили стандартный интерфейс Android. Забыл упомянуть, что устройство имеет все Google-сервисы (Android Market, Gmail, Google Maps и т.д.),  как и положено Android-девайсу.&lt;br /&gt;&lt;br /&gt;За такие деньги (около 12 тысяч) в поставку также входит альтернативный навигационная программа iДа. Попробовать в реальных условиях я ее не смог (нет машины), но запустил тестовый режим. Мне понравилось, пользоваться довольно удобно, интерфейс вполне хорош.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfSA1hXL4I/AAAAAAAACHg/djYqc8pPJHg/s1600/IMG_9072.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfSA1hXL4I/AAAAAAAACHg/djYqc8pPJHg/s400/IMG_9072.JPG" alt="" id="BLOGGER_PHOTO_ID_5501096381665193858" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfR4DZiAgI/AAAAAAAACHY/SkgNGKLrHOI/s1600/IMG_9075.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/TFfR4DZiAgI/AAAAAAAACHY/SkgNGKLrHOI/s400/IMG_9075.JPG" alt="" id="BLOGGER_PHOTO_ID_5501096230771622402" border="0" /&gt;&lt;/a&gt;Вообщем, если вам нужен простенький полноценный девайс на Android, то он является очень хорошим выбором, если нет денег, например на HTC Hero.&lt;br /&gt;&lt;br /&gt;Спасибо за предоставленный образец компанию Вобис Компьютер.&lt;br /&gt;&lt;br /&gt;P.S. К сожалению, не смог подключить устройство к компьютеру, чтобы разрабатывать приложения. Видимо нужен специальный драйвер, автоматически ADB его не подхватило, даже с включенным режимом отладки.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-241773589047145217?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/241773589047145217/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/08/gigabyte-gsmart-g1305-codfish.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/241773589047145217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/241773589047145217'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/08/gigabyte-gsmart-g1305-codfish.html' title='Обзор Gigabyte GSmart G1305 (Codfish)'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OyvNDtwP51Q/TFfD5wMu5EI/AAAAAAAACGI/XA_wVdBhuwc/s72-c/IMG_9051.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-431024384340527167</id><published>2010-06-19T17:12:00.003+04:00</published><updated>2010-06-19T17:18:13.557+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Toast'/><category scheme='http://www.blogger.com/atom/ns#' term='Статьи'/><title type='text'>Мои статьи в PDF</title><content type='html'>Добавил новый блок на сайте Мои статьи в PDF. Находится он справа, думаю заметите. Сделано это для того, чтобы вам не искать по всему блогу эти статьи, а быстро получать к ним доступ в удобном виде. Там будут постоянные ссылки на мои статьи в формате PDF для печати. Пока я подготовил только одну статью, которую недавно писал о Toast. Немного ее поредактировал, но суть осталась такая же.&lt;br /&gt;&lt;br /&gt;P.S. Постепенно выложу свои старые статьи, ну и конечно буду писать новые.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-431024384340527167?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/431024384340527167/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/06/pdf.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/431024384340527167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/431024384340527167'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/06/pdf.html' title='Мои статьи в PDF'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-2978230152639345218</id><published>2010-05-21T14:35:00.003+04:00</published><updated>2010-05-21T14:43:54.705+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='htc'/><category scheme='http://www.blogger.com/atom/ns#' term='developer'/><category scheme='http://www.blogger.com/atom/ns#' term='ukraine'/><category scheme='http://www.blogger.com/atom/ns#' term='maxim yudin'/><category scheme='http://www.blogger.com/atom/ns#' term='adc'/><category scheme='http://www.blogger.com/atom/ns#' term='jq soft'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Мой видеокаст специально для HTC Android Developers Contest на Украине</title><content type='html'>&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gYmVyCHc6jI&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=ru_RU&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/gYmVyCHc6jI&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=ru_RU&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="385" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-2978230152639345218?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/2978230152639345218/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/05/htc-android-developers-contest.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/2978230152639345218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/2978230152639345218'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/05/htc-android-developers-contest.html' title='Мой видеокаст специально для HTC Android Developers Contest на Украине'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-4716440490671354042</id><published>2010-05-11T22:05:00.005+04:00</published><updated>2010-06-08T11:25:30.006+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NumberPicker'/><category scheme='http://www.blogger.com/atom/ns#' term='Widgets'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Использование NumberPicker и кастомизация его внешнего вида</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Внимание. Данное решение с NumberPicker не работает на прошивках 2.2 и выше. Другое решение - взять класс NumberPicker из исходных кодов Android и использовать его. Постараюсь переписать статью в ближайшее время.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Наверно многие из вас использовали такие виджеты, как &lt;a href="http://d.android.com/reference/android/widget/DatePicker.html"&gt;&lt;span style="font-weight: bold;"&gt;DatePicker&lt;/span&gt;&lt;/a&gt; и &lt;a href="http://d.android.com/reference/android/widget/TimePicker.html"&gt;&lt;span style="font-weight: bold;"&gt;TimePicker&lt;/span&gt;&lt;/a&gt;. Но функциональность этих виджетов ограничена возможностью выбора даты и времени, но мне захотелось большего - использовать данную функциональность для выбора любого числа в заданном диапазоне (как в контроле &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown.aspx"&gt;&lt;span style="font-weight: bold;"&gt;NumericUpDown&lt;/span&gt;&lt;/a&gt; в C#). Такая возможность существует. Виджеты DatePicker и TimePicker основаны на системном виджете NumberPicker, который вы не можете использовать из коробки. Для его использования потребуется написать небольшое количество кода.&lt;br /&gt;&lt;br /&gt;Для начала добавим NumberPicker в наш главный layout, xml-код выглядит следующим образом:&lt;br /&gt;&lt;pre class="xml"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;version&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1.0"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;encoding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"utf-8"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;RelativeLayout&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;xmlns:android&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;com.android.internal.widget.NumberPicker&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:id&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@+id/numTestNumberPicker"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_centerInParent&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;/com.android.internal.widget.NumberPicker&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;/RelativeLayout&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a name='more'&gt;&lt;/a&gt;У NumberPicker есть 3 метода, которые нам понадобятся &lt;span style="font-weight: bold;"&gt;setRange&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;getCurrent&lt;/span&gt; и &lt;span style="font-weight: bold;"&gt;setCurrent&lt;/span&gt;. Думаю по названиям методов ясно, что они делают. Сложность состоит в том, что эти методы скрыты для разработчика и вызвать их можно только используя рефлексию. Для удобства использования, я написал helper-класс, который позволяет работать с этими методами. Код класса представлен ниже:&lt;br /&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;package&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;maximyudin.NumberPickerDemo&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;java.lang.reflect.Method&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;class&lt;/span&gt; NumberPicker &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Object&lt;/span&gt; picker&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;private&lt;/span&gt; Class&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;?&amp;gt;&lt;/span&gt; classPicker&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; NumberPicker&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Object&lt;/span&gt; o&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;picker &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; o&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;classPicker &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; picker.&lt;span style="color: rgb(0, 102, 51);"&gt;getClass&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;void&lt;/span&gt; setRange&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt; start, &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt; end&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Method&lt;/span&gt; m &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; classPicker.&lt;span style="color: rgb(0, 102, 51);"&gt;getMethod&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"setRange"&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;class&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;class&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;m.&lt;span style="color: rgb(0, 102, 51);"&gt;invoke&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;picker, start, end&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Exception&lt;/span&gt; e&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Integer&lt;/span&gt; getCurrent&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Integer&lt;/span&gt; current &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Method&lt;/span&gt; m &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; classPicker.&lt;span style="color: rgb(0, 102, 51);"&gt;getMethod&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"getCurrent"&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;current &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Integer&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; m.&lt;span style="color: rgb(0, 102, 51);"&gt;invoke&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;picker&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Exception&lt;/span&gt; e&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt; current&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;void&lt;/span&gt; setCurrent&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt; current&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Method&lt;/span&gt; m &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; classPicker.&lt;span style="color: rgb(0, 102, 51);"&gt;getMethod&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"setCurrent"&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;class&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;m.&lt;span style="color: rgb(0, 102, 51);"&gt;invoke&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;picker, current&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Exception&lt;/span&gt; e&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;В конструктуре класса передается реальный объект NumberPicker (являющийся LinearLayout), полученный с помощью findViewById из нашего главного layout. Рассмотрим как использовать свежеиспеченный NumberPicker на практике.&lt;br /&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;package&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;maximyudin.NumberPickerDemo&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.app.Activity&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.os.Bundle&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.LinearLayout&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;public&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;class&lt;/span&gt; NumberPickerDemo &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;extends&lt;/span&gt; Activity &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;@Override&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;public&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;void&lt;/span&gt; onCreate&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;Bundle savedInstanceState&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;super&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;onCreate&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;savedInstanceState&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;setContentView&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;R.&lt;span style="color: rgb(0, 102, 51);"&gt;layout&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;main&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;LinearLayout numTestNumberPickerView &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;LinearLayout&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; findViewById&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;R.&lt;span style="color: rgb(0, 102, 51);"&gt;id&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;numTestNumberPicker&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;NumberPicker numTestNumberPickerObject &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;new&lt;/span&gt; NumberPicker&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;br /&gt;numTestNumberPickerView&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;numTestNumberPickerObject.&lt;span style="color: rgb(0, 102, 51);"&gt;setRange&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;1&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;100&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;numTestNumberPickerObject.&lt;span style="color: rgb(0, 102, 51);"&gt;setCurrent&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;50&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;int&lt;/span&gt; currentPos &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; numTestNumberPickerObject.&lt;span style="color: rgb(0, 102, 51);"&gt;getCurrent&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;В принципе все довольно просто при использовании helper-класса. На экране выглядит это следующим образом:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_OyvNDtwP51Q/S-mMUuGUCbI/AAAAAAAACC0/dLsKyLrrzpM/s1600/numberpicker1.png"&gt;&lt;img src="http://2.bp.blogspot.com/_OyvNDtwP51Q/S-mMUuGUCbI/AAAAAAAACC0/dLsKyLrrzpM/s400/numberpicker1.png" alt="" id="BLOGGER_PHOTO_ID_5470057510017960370" style="cursor: pointer; width: 267px; height: 400px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Теперь приступим ко второй части статьи - полноценному изменению внешнего вида виджета. Для этого используется набор заранее подготовленных мной изображений (из моей программы &lt;b&gt;&lt;a href="http://jqsoft.blogspot.com/2010/03/mytasks.html"&gt;MyTasks&lt;/a&gt;&lt;/b&gt;) различных состояний кнопок ('+' и '-') и текстового поля виджета, именно из них состоит NumberPicker. Взять их можно &lt;b&gt;&lt;a href="http://dl.dropbox.com/u/2158590/Articles/numberpicker_images.zip"&gt;отсюда&lt;/a&gt;&lt;/b&gt;. Изображения представлены в формате Nine-Patch (9-Patch), такой тип изображений может растягиваться в зависимости, например, от их контента, они часто применяются для установки фона различных виджетов, в том числе и в моем случае. Подробней о 9-Patch вы можете прочитать &lt;a href="http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch"&gt;&lt;b&gt;тут&lt;/b&gt;&lt;/a&gt;. Изображения необходимо положить в папку drawable, либо в папку drawable-mdpi (-ldpi, -hdpi), как в моем случае.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Для того, чтобы эти изображения заработали нужным нам способом (то бишь реагировали на различные состояния виджетов) необходимо сформировать три xml-файла в селектор-формате (по файлу на каждый виджет - две кнопки и текстовое поле). Селектор представляет собой набор элементов с атрибутами, которые обозначают различные состояния виджета (выбран, нажат, неактивный и т.д.). Эти файлы вы также должны поместить в папку drawable, либо drawable-mdpi (-ldpi, -hdpi). Ниже представлены эти три файла.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Для кнопки '+' (timepicker_up_btn.xml)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="xml"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;version&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1.0"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;encoding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"utf-8"&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;selector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;xmlns:android&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_up_picker_notselected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_up_picker_pressed"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_up_picker_selected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_up_picker_disabled"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_up_picker_disabled_focus"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;/selector&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal;font-family:Georgia,serif;font-size:16px;"  &gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;Для текстового поля (ed_picker_background.xml)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="xml"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;version&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1.0"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;encoding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"utf-8"&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;selector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;xmlns:android&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; ﻿&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_window_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/edit_picker_notselected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; ﻿&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_window_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/edit_picker_notselected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/edit_picker_pressed"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/edit_picker_selected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/edit_picker_notselected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/edit_picker_notselected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/edit_picker_notselected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;/selector&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;Для кнопки '-' (timepicker_down_btn.xml)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="xml"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;version&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1.0"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;encoding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"utf-8"&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;selector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;xmlns:android&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_down_picker_notselected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_down_picker_pressed"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_down_picker_selected"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_down_picker_disabled"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;item&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_pressed&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_enabled&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:state_focused&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"true"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:drawable&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@drawable/btn_down_picker_disabled_focus"&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;lt;/selector&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Теперь необходимо немного изменить конструктор helper-класса, созданного для NumberPicker в начале статьи. Это позволит нам при создании объекта NumberPicker изменить внешний вид его составляющих. Код модифицированного класса представлен ниже.&lt;div&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;package&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;maximyudin.NumberPickerDemo&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;java.lang.reflect.Method&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.view.View&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.EditText&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.LinearLayout&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;public&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;class&lt;/span&gt; NumberPicker &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Object&lt;/span&gt; picker&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;private&lt;/span&gt; Class&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;?&amp;gt;&lt;/span&gt; classPicker&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;public&lt;/span&gt; NumberPicker&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;LinearLayout numberPickerView&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;picker &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; numberPickerView&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;classPicker &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; picker.&lt;span style="color: rgb(0, 102, 51);"&gt;getClass&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;// Кнопка '+', тип - NumberPickerButton&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;View&lt;/span&gt; upButton &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; numberPickerView.&lt;span style="color: rgb(0, 102, 51);"&gt;getChildAt&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;upButton.&lt;span style="color: rgb(0, 102, 51);"&gt;setBackgroundResource&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;R.&lt;span style="color: rgb(0, 102, 51);"&gt;drawable&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;timepicker_up_btn&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;// Текстовое поле, тип - EditText&lt;/span&gt;&lt;br /&gt;EditText edDate &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;EditText&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; numberPickerView.&lt;span style="color: rgb(0, 102, 51);"&gt;getChildAt&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;edDate.&lt;span style="color: rgb(0, 102, 51);"&gt;setTextSize&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;17&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;edDate.&lt;span style="color: rgb(0, 102, 51);"&gt;setBackgroundResource&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;R.&lt;span style="color: rgb(0, 102, 51);"&gt;drawable&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;ed_picker_background&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;// Кнопка '-', тип - NumberPickerButton&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;View&lt;/span&gt; downButton &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; numberPickerView.&lt;span style="color: rgb(0, 102, 51);"&gt;getChildAt&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;downButton.&lt;span style="color: rgb(0, 102, 51);"&gt;setBackgroundResource&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;R.&lt;span style="color: rgb(0, 102, 51);"&gt;drawable&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;timepicker_down_btn&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;public&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;void&lt;/span&gt; setRange&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;int&lt;/span&gt; start, &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;int&lt;/span&gt; end&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;try&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Method&lt;/span&gt; m &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; classPicker.&lt;span style="color: rgb(0, 102, 51);"&gt;getMethod&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"setRange"&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;int&lt;/span&gt;.&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;class&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;int&lt;/span&gt;.&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;class&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;m.&lt;span style="color: rgb(0, 102, 51);"&gt;invoke&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;picker, start, end&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;catch&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Exception&lt;/span&gt; e&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Integer&lt;/span&gt; getCurrent&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Integer&lt;/span&gt; current &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;try&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Method&lt;/span&gt; m &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; classPicker.&lt;span style="color: rgb(0, 102, 51);"&gt;getMethod&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"getCurrent"&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;current &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Integer&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; m.&lt;span style="color: rgb(0, 102, 51);"&gt;invoke&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;picker&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;catch&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Exception&lt;/span&gt; e&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;return&lt;/span&gt; current&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;public&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;void&lt;/span&gt; setCurrent&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;int&lt;/span&gt; current&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;try&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Method&lt;/span&gt; m &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; classPicker.&lt;span style="color: rgb(0, 102, 51);"&gt;getMethod&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"setCurrent"&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;int&lt;/span&gt;.&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;class&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;m.&lt;span style="color: rgb(0, 102, 51);"&gt;invoke&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;picker, current&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;catch&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Exception&lt;/span&gt; e&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Результат представлен ниже на рисунке.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/S-mcLWOnWjI/AAAAAAAACDM/3KSOXRWwZn0/s1600/numberpicker2.png"&gt;&lt;img src="http://4.bp.blogspot.com/_OyvNDtwP51Q/S-mcLWOnWjI/AAAAAAAACDM/3KSOXRWwZn0/s400/numberpicker2.png" alt="" id="BLOGGER_PHOTO_ID_5470074941177551410" style="cursor: pointer; width: 267px; height: 400px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Полный исходный код проекта можно скачать &lt;b&gt;&lt;a href="http://dl.dropbox.com/u/2158590/Articles/NumberPickerDemo.zip"&gt;тут&lt;/a&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;На этом моя статья завершена, надеюсь я помог вам узнать что-то новое. Жду комментариев и поправок, если есть кому что предложить.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-4716440490671354042?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/4716440490671354042/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/05/numberpicker.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/4716440490671354042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/4716440490671354042'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/05/numberpicker.html' title='Использование NumberPicker и кастомизация его внешнего вида'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OyvNDtwP51Q/S-mMUuGUCbI/AAAAAAAACC0/dLsKyLrrzpM/s72-c/numberpicker1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-6427328564325166274</id><published>2010-04-04T19:38:00.003+04:00</published><updated>2010-04-04T19:40:49.937+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bppod'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='jq soft'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Подкаст о началах разработки под Android</title><content type='html'>Сегодня вышел подкаст, записанный буквально сегодня с утра.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bppod.rpod.ru/147901.html"&gt;&lt;span style="font-weight: bold;"&gt;В помощь начинающему разработчику под OS Android: интервью с Максимом Юдиным (JQ Soft)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Небольшой рассказ о Максиме Юдине, JQ Soft и их программах&lt;br /&gt;- Какие бывают средства разработки для Android&lt;br /&gt;- Требования к начинающему разработчику: что знать, что читать, где искать&lt;br /&gt;- Как заработать на разработке ПО под Android, способы и хитрости&lt;br /&gt;- Какое будущее у разработки под Android OS&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bppod.rpod.ru/147901.html"&gt;Послушать&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-6427328564325166274?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/6427328564325166274/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/04/android.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/6427328564325166274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/6427328564325166274'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/04/android.html' title='Подкаст о началах разработки под Android'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-8383094463803280942</id><published>2010-03-31T09:12:00.004+04:00</published><updated>2010-03-31T09:57:04.094+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TTF'/><category scheme='http://www.blogger.com/atom/ns#' term='Советы'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom font'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Использование стороннего шрифта в TextView</title><content type='html'>В поставку &lt;span style="font-weight: bold;"&gt;Android&lt;/span&gt; входит всего 3 шрифта для использования программистами - &lt;span style="font-weight: bold;"&gt;Sans&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Serif&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Monospace&lt;/span&gt;, которые вы обычно устанавливаете через свойство &lt;span style="font-weight: bold;"&gt;android:typeface&lt;/span&gt;. Иногда возникает необходимость использовать сторонний шрифт, допустим &lt;a href="http://img.dafont.com/dl/?f=ds_digital"&gt;DS-Digital Bold&lt;/a&gt;. Делается это довольно просто.&lt;br /&gt;&lt;br /&gt;Вы должны положить ваш шрифт в папку проекта по следующему пути - &lt;span style="font-weight: bold;"&gt;assets/fonts&lt;/span&gt;, папка fonts не обязательна, можно положить непосредственно в assets.&lt;br /&gt;&lt;br /&gt;Чтобы использовать этот шрифт для текста в TextView необходимо написать следующий код:&lt;br /&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;TextView tvName &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;TextView&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; findViewById&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;R.&lt;span style="color: rgb(0, 102, 51);"&gt;id&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;tvName&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;Typeface digitalFont &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; Typeface.&lt;span style="color: rgb(0, 102, 51);"&gt;createFromAsset&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;getAssets&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 255);"&gt;"fonts/digital.ttf"&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;tvName.&lt;span style="color: rgb(0, 102, 51);"&gt;setTypeface&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;digitalFont&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/pre&gt;Результат показан на картинке ниже.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OyvNDtwP51Q/S7Lj7MJQwbI/AAAAAAAAB_s/fGYoN7v4vAw/s1600/customfont.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 267px; height: 400px;" src="http://1.bp.blogspot.com/_OyvNDtwP51Q/S7Lj7MJQwbI/AAAAAAAAB_s/fGYoN7v4vAw/s400/customfont.png" alt="" id="BLOGGER_PHOTO_ID_5454672704710951346" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-8383094463803280942?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/8383094463803280942/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/03/textview.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/8383094463803280942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/8383094463803280942'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/03/textview.html' title='Использование стороннего шрифта в TextView'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OyvNDtwP51Q/S7Lj7MJQwbI/AAAAAAAAB_s/fGYoN7v4vAw/s72-c/customfont.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-2519362005388031707</id><published>2010-03-28T20:35:00.005+04:00</published><updated>2010-06-17T23:05:17.253+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Toast'/><category scheme='http://www.blogger.com/atom/ns#' term='Оповещения'/><category scheme='http://www.blogger.com/atom/ns#' term='Статьи'/><title type='text'>Оповещение пользователя: Toast</title><content type='html'>&lt;span style="font-size:100%;"&gt;Начинаю цикл статей о способах оповещения пользователя. Цикл рассчитан на новичков. Существует три способа оповещения пользователя: через &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, через &lt;a href="http://developer.android.com/reference/android/app/Notification.html"&gt;Notification&lt;/a&gt; и через различные виды &lt;a href="http://developer.android.com/reference/android/app/Dialog.html"&gt;Dialog&lt;/a&gt;. Сегодня я расскажу об использовании первого типа оповещения - &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Введение&lt;/b&gt;&lt;/span&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; представляет собой всплывающее сообщение, которое позволяет быстро оповестить пользователя о произошедшем событии, например, сохранении настроек программы на SD-карте. Особенность &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; заключается в том, что во время появления сообщения пользователь может взаимодействовать с находящимися за ним Activity, либо с домашним экраном (home screen). Также стоит заметить, что пользователь не может контролировать закрытие &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; с помощью аппаратной кнопки Back или другими возможными способами, сообщение плавно появляется и потом само же плавно исчезает. Время задержки между появлением и исчезновением можно задавать программно. В большинстве случаев &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, например, добавить изображение рядом с текстом. Помимо этого можно управлять расположением &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt; &lt;/b&gt;на экране. &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; может быть создан из Activity, либо из Service. В случае создания из сервиса &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; появляется поверх Activity, которое имеет фокус, либо поверх домашнего экрана.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Создание простого &lt;/b&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Создать простой &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; можно через статичный метод &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#makeText%28android.content.Context,%20int,%20int%29"&gt;makeText&lt;/a&gt; класса &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, задав необходимые параметры.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="font-size:100%;"&gt;Toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;makeText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;getApplicationContext&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;"Привет, мир!"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, Toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;LENGTH_SHORT&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;show&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;В качестве параметров задается контекст приложения, сообщение и задержка, о которой писал ранее. Сообщение может быть задано непосредственно в виде текста, либо используя текстовый ресурс-строку, например, R.string.hello_world, в которой хранится текст, который необходимо отобразить, в нашем случае "Привет, мир!". Задержка может быть короткой - &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#LENGTH_SHORT"&gt;LENGTH_SHORT&lt;/a&gt;, либо длинной - &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#LENGTH_LONG"&gt;LENGTH_LONG&lt;/a&gt;. По умолчанию при создании &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt; &lt;/b&gt;задается короткая задержка. Программно задержка задается методом &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#setDuration%28int%29"&gt;setDuration&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:inherit;"&gt;&lt;span style="font-size:100%;"&gt;Суть метода &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#makeText%28android.content.Context,%20int,%20int%29"&gt;makeText&lt;/a&gt; такова: внутри метода создается объект класса &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, устанавливается текст сообщения и тип задержки. Далее к объекту может быть либо применен, как в моем случае, метод &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#show%28%29"&gt;show&lt;/a&gt;, который отображает созданный &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, либо заданы дополнительные свойства &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, например, его расположение на экране или созданный вами внешний вид.&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:inherit;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:inherit;"&gt;&lt;span style="font-size:100%;"&gt;Созданный &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt; &lt;/b&gt;выглядит следующим образом:&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:inherit;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:inherit;"&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://2.bp.blogspot.com/_OyvNDtwP51Q/S30V_LUGq2I/AAAAAAAAB9c/CkzVwYY0ts8/s1600-h/simpletoast.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_OyvNDtwP51Q/S30V_LUGq2I/AAAAAAAAB9c/CkzVwYY0ts8/s320/simpletoast.png" border="0" height="320" width="212" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;b&gt;Изменение положения &lt;/b&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Расположение &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; на экране задается с помощью метода &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#setGravity%28int,%20int,%20int%29"&gt;setGravity&lt;/a&gt; следующим образом:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="font-size:100%;"&gt;Toast toast &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;makeText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;getApplicationContext&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;"Привет, мир!"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;,&lt;br /&gt;Toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;LENGTH_LONG&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setGravity&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Gravity.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;CENTER&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-size:100%;" &gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-size:100%;" &gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;show&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Первый параметр метода задает выравнивание, вариантов которого довольно много в классе &lt;a href="http://developer.android.com/reference/android/view/Gravity.html"&gt;Gravity&lt;/a&gt;. Второй и третий параметры задают на сколько пикселей будет смещен &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; по горизонтали вправо и по вертикали вниз соответственно относительно значения, заданного в первом параметре. Результат приведенного выше кода отображается следующим образом:&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://3.bp.blogspot.com/_OyvNDtwP51Q/S36PvlB04eI/AAAAAAAAB98/flol9bILeK0/s1600-h/toastgravity.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://3.bp.blogspot.com/_OyvNDtwP51Q/S36PvlB04eI/AAAAAAAAB98/flol9bILeK0/s320/toastgravity.png" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Добавление изображения в простой &lt;/b&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Для добавления изображения в стандартный &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt; &lt;/b&gt;потребуется программно создать объект класса &lt;a href="http://developer.android.com/reference/android/widget/ImageView.html"&gt;ImageView&lt;/a&gt; и задать для него изображение из ресурсов с помощью метода &lt;a href="http://developer.android.com/reference/android/widget/ImageView.html"&gt;setImageResource&lt;/a&gt;. Затем потребуется получить стандартный внешний вид &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, если посмотреть в отладчике он является &lt;a href="http://developer.android.com/reference/android/widget/LinearLayout.html"&gt;LinearLayout&lt;/a&gt;, и добавить в него созданный объект &lt;a href="http://developer.android.com/reference/android/widget/ImageView.html"&gt;ImageView&lt;/a&gt; с указанием в какую позицию добавить изображение, в моем случае я указал нулевую позицию, чтобы изображение было добавлено выше текста. Код для создания этого &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt; &lt;/b&gt;с изображением представлен ниже.&lt;/span&gt;&lt;/div&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="font-size:100%;"&gt;Toast toast &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;makeText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;getApplicationContext&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;"Привет, мир!"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, Toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;LENGTH_LONG&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setGravity&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Gravity.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;CENTER&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-size:100%;" &gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-size:100%;" &gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;LinearLayout toastView &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;LinearLayout&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;getView&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;ImageView imageWorld &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;color:black;"  &gt;new&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ImageView&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;getApplicationContext&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;imageWorld.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setImageResource&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;R.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;drawable&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;world&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;toastView.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;addView&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;imageWorld, &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-size:100%;" &gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;show&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Созданный таким образом &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;  &lt;/b&gt;выглядит следующим образом:&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://1.bp.blogspot.com/_OyvNDtwP51Q/S36eD9-59oI/AAAAAAAAB-E/SO6f8r2Zjpo/s1600-h/toastwithimage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_OyvNDtwP51Q/S36eD9-59oI/AAAAAAAAB-E/SO6f8r2Zjpo/s320/toastwithimage.png" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;b&gt;Создание сложного &lt;/b&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Для создания сложного &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt; &lt;/b&gt;потребуется создать собственный layout, код которого выглядит следующим образом:&lt;br /&gt;&lt;/span&gt;&lt;pre class="xml"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;version&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1.0"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;encoding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"utf-8"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;LinearLayout&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;xmlns:android&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:background&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"#ffffffff"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:orientation&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"vertical"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:id&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@+id/llToast"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;TextView&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_margin&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1dip"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:textColor&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"#ffffffff"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:gravity&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"center"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:background&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"#bb000000"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:id&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@+id/tvTitleToast"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;/TextView&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;LinearLayout&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:orientation&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"vertical"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:id&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@+id/llToastContent"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_marginLeft&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1dip"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_marginRight&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1dip"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_marginBottom&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1dip"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;android:padding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"15dip"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:background&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"#44000000"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;ImageView&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_gravity&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"center"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:id&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@+id/tvImageToast"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;TextView&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:paddingRight&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"10dip"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:paddingLeft&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"10dip"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:gravity&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"center"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:textColor&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"#ff000000"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;android:id&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@+id/tvTextToast"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;/LinearLayout&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;/LinearLayout&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Я создал &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; в виде диалога с заголовком, внутри которого располагаются изображение и текст.&lt;br /&gt;&lt;br /&gt;Теперь этот layout нужно прописать для &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt; и задать сообщения для заголовка и текста, а также задать изображение. Делается это следующим образом:&lt;br /&gt;&lt;/span&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="font-size:100%;"&gt;LayoutInflater inflater &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; getLayoutInflater&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);font-size:100%;" &gt;View&lt;/span&gt;&lt;span style="font-size:100%;"&gt; layout &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; inflater.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;inflate&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;R.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;layout&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;toast&lt;/span&gt;&lt;span style="font-size:100%;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;  (&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ViewGroup&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; findViewById&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;R.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;id&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;llToast&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;ImageView image &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ImageView&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; layout.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;findViewById&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;R.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;id&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;tvImageToast&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;image.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setImageResource&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;R.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;drawable&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;world&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;TextView title &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;TextView&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; layout.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;findViewById&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;R.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;id&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;tvTitleToast&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;title.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:100%;" &gt;"Внимание"&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;TextView text &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;TextView&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; layout.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;findViewById&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;R.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;id&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;tvTextToast&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;text.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:100%;" &gt;"Привет, мир!"&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;Toast toast &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-size:100%;" &gt;new&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Toast&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;getApplicationContext&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setGravity&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Gravity.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;RIGHT&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;|&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Gravity.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;TOP&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-size:100%;" &gt;12&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-size:100%;" &gt;40&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setDuration&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;LENGTH_LONG&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;setView&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;layout&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;toast.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 51);font-size:100%;" &gt;show&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);font-size:100%;" &gt;;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;В первых двух строках происходит инициализация объекта &lt;a href="http://developer.android.com/reference/android/view/View.html"&gt;View&lt;/a&gt; путем наполнения его из xml-файла (для этого используется экземпляр класса &lt;a href="http://developer.android.com/reference/android/view/LayoutInflater.html"&gt;LayoutInflater&lt;/a&gt;, получаемый с помощью метода &lt;a href="http://developer.android.com/reference/android/app/Activity.html#getLayoutInflater%28%29"&gt;getLayoutInflater&lt;/a&gt;), созданного ранее. Первый параметр метода &lt;a href="http://developer.android.com/reference/android/view/LayoutInflater.html#inflate%28int,%20android.view.ViewGroup%29"&gt;inflate&lt;/a&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt; задает идентификатор созданного ранее layout - R.layout.toast (в данном  случае он соответствует файлу &lt;span style="font-size:100%;"&gt;&lt;b&gt;res/layout/toast.xml&lt;/b&gt;). Затем получаются ссылки на изображение, заголовок и текст сообщения, и заполняются нужными данными. Далее непосредственно создается Toast, задаются необходимые параметры и в качестве layout прописывается тот layout, который мы инициализировали ранее Делается это с помощью метода &lt;a href="http://developer.android.com/reference/android/widget/Toast.html#setView%28android.view.View%29"&gt;setView&lt;/a&gt;. В результате всех этих манипуляций у нас получится &lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;, выглядящий как на рисунке ниже.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/S4T6nTkI6UI/AAAAAAAAB-U/ZNxjHdewmtM/s1600-h/customtoast.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_OyvNDtwP51Q/S4T6nTkI6UI/AAAAAAAAB-U/ZNxjHdewmtM/s320/customtoast.png" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Вызов &lt;/b&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;из другого потока&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Для вызова &lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; из другого потока необходимо объявить в вашем классе переменную-член типа &lt;a href="http://developer.android.com/intl/fr/reference/android/os/Handler.html"&gt;Handler&lt;/a&gt; следующим образом:&lt;br /&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;Handler handler &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; Handler&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/pre&gt;Теперь допустим у вас есть поток, в котором нужно вызвать функцию, отображающую &lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt; &lt;/b&gt;&lt;/span&gt;на экране:&lt;br /&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Thread&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Runnable&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;void&lt;/span&gt; run&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;showToast&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;start&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/pre&gt;В данный момент функция будет выполняться в отдельно созданном потоке, но &lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; может отображен только в главном потоке, то есть в данном случае вы увидите сообщение об ошибке.&lt;br /&gt;&lt;br /&gt;Чтобы выполнить действия в главном потоке при вызове из отдельного потока, необходим &lt;a href="http://developer.android.com/intl/fr/reference/android/os/Handler.html"&gt;Handler&lt;/a&gt;, который мы объявили ранее. Отобразить &lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;a href="http://developer.android.com/reference/android/widget/Toast.html"&gt;Toast&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; из созданного потока можно следующим образом:&lt;br /&gt;&lt;pre class="java"  style="font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;void&lt;/span&gt; showToast&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;handler.&lt;span style="color: rgb(0, 102, 51);"&gt;post&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Runnable&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;void&lt;/span&gt; run&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  Toast.&lt;span style="color: rgb(0, 102, 51);"&gt;makeText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;getApplicationContext&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 255);"&gt;"Привет, мир!"&lt;/span&gt;,&lt;br /&gt;    Toast.&lt;span style="color: rgb(0, 102, 51);"&gt;LENGTH_SHORT&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;show&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;&lt;i&gt;На этом первая статья о способах оповещения пользователя закончена. Если вы нашли ошибку или хотите добавить какие-то другие способы работы с Toast, напишите комментарии и я обязательно добавлю ваши замечания в статью.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-2519362005388031707?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/2519362005388031707/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/02/toast.html#comment-form' title='Комментарии: 9'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/2519362005388031707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/2519362005388031707'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/02/toast.html' title='Оповещение пользователя: Toast'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OyvNDtwP51Q/S30V_LUGq2I/AAAAAAAAB9c/CkzVwYY0ts8/s72-c/simpletoast.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-4651724505083387590</id><published>2010-02-05T12:03:00.001+03:00</published><updated>2010-02-05T12:05:14.934+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SuperJob'/><category scheme='http://www.blogger.com/atom/ns#' term='Пресс-релиз'/><category scheme='http://www.blogger.com/atom/ns#' term='На заказ'/><category scheme='http://www.blogger.com/atom/ns#' term='Программы'/><title type='text'>Пресс-релиз клиента SuperJob.ru для Android готов</title><content type='html'>&lt;img border="0" src="http://public.superjob.ru/images/uploaded/screen_android.jpg" /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://public.superjob.ru/files/superjob.apk"&gt;&lt;img border="0" src="http://public.superjob.ru/images/uploaded/android_download.gif" style="margin: 30px 0px 43px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;После двух месяцев с момента окончания разработки и помещения его на &lt;a href="market://search?q=pname:ru.superjob.mobileclient"&gt;Android Market&lt;/a&gt; наконец-то SuperJob.ru написали пресс-релиз к моему приложению. Приложение можно скачать, как на &lt;a href="http://www.superjob.ru/integration/android.html"&gt;их сайте&lt;/a&gt;, так и в &lt;a href="market://search?q=pname:ru.superjob.mobileclient"&gt;Android Market&lt;/a&gt; и &lt;a href="http://slideme.org/application/superjob"&gt;SlideMe.org&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-4651724505083387590?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/4651724505083387590/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/02/superjobru-android.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/4651724505083387590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/4651724505083387590'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/02/superjobru-android.html' title='Пресс-релиз клиента SuperJob.ru для Android готов'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-5335324557585452880</id><published>2010-01-04T17:30:00.007+03:00</published><updated>2010-01-04T17:39:52.241+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SuperJob'/><category scheme='http://www.blogger.com/atom/ns#' term='На заказ'/><category scheme='http://www.blogger.com/atom/ns#' term='Программы'/><title type='text'>SuperJob - официальный клиент для SuperJob.ru</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_OyvNDtwP51Q/S0H9Dr7cdZI/AAAAAAAAB7c/otrrnBARyGI/s320/superjobicon.png" /&gt;&lt;br /&gt;&lt;/div&gt;Сравнительно недавно сделал бесплатного клиента для портала по поиску работы &lt;a href="http://www.superjob.ru/"&gt;SuperJob.ru&lt;/a&gt;. Клиент официальный, сделан специально для SuperJob на заказ. В Android Market клиент висит сравнительно давно, популярность пока очень мала, но, надеюсь, после официального пресс-релиза, который планируется после новогодних праздников, количество скачиваний возрастет. Также клиент можно скачать с сайта &lt;a href="http://slideme.org/application/superjob"&gt;SlideMe.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;По функционалу программа аналогична iPhone-версии, но имеет другой интерфейс пользователя. С помощью этого клиента вы можете получать краткий список вакансий (по 10 на странице), просматривать полную информацию о конкретной вакансии, а также сохранять вакансии в Избранном, что позволит просмотреть их позже без соединения с Интернетом.&lt;br /&gt;&lt;br /&gt;Ниже приведу скриншоты программы, чтобы наглядно был виден ее функционал.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OyvNDtwP51Q/S0H6Ssms5uI/AAAAAAAAB58/Nq1i_Yy4D5o/s1600-h/superjob1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_OyvNDtwP51Q/S0H6Ssms5uI/AAAAAAAAB58/Nq1i_Yy4D5o/s320/superjob1.png" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/S0H6ThYStEI/AAAAAAAAB6E/ul62qVY7n6E/s1600-h/superjob2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/S0H6ThYStEI/AAAAAAAAB6E/ul62qVY7n6E/s320/superjob2.png" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_OyvNDtwP51Q/S0H6UZ1urjI/AAAAAAAAB6M/lBGtNPCyLlA/s1600-h/superjob3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/S0H6UZ1urjI/AAAAAAAAB6M/lBGtNPCyLlA/s320/superjob3.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6U_6esYI/AAAAAAAAB6U/wo55ANY0bLs/s1600-h/superjob4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6U_6esYI/AAAAAAAAB6U/wo55ANY0bLs/s320/superjob4.png" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/S0H6V0ndygI/AAAAAAAAB6c/gxMkTkSudNs/s1600-h/superjob5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/S0H6V0ndygI/AAAAAAAAB6c/gxMkTkSudNs/s320/superjob5.png" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/S0H6WWLPpLI/AAAAAAAAB6k/LqB50dtW16c/s1600-h/superjob6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/S0H6WWLPpLI/AAAAAAAAB6k/LqB50dtW16c/s320/superjob6.png" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_OyvNDtwP51Q/S0H6XCanggI/AAAAAAAAB6s/yHt9q_hlyMk/s1600-h/superjob7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/S0H6XCanggI/AAAAAAAAB6s/yHt9q_hlyMk/s320/superjob7.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6X7xGQNI/AAAAAAAAB60/f8lOQ9HCABI/s1600-h/superjob8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6X7xGQNI/AAAAAAAAB60/f8lOQ9HCABI/s320/superjob8.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6ZA91PkI/AAAAAAAAB68/TDbXNhXWT1g/s1600-h/superjob9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6ZA91PkI/AAAAAAAAB68/TDbXNhXWT1g/s320/superjob9.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6ZsTLwEI/AAAAAAAAB7E/QTM1l_Ay13c/s1600-h/superjob10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6ZsTLwEI/AAAAAAAAB7E/QTM1l_Ay13c/s320/superjob10.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6aeascKI/AAAAAAAAB7M/_epIaQKRzWA/s1600-h/superjob11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OyvNDtwP51Q/S0H6aeascKI/AAAAAAAAB7M/_epIaQKRzWA/s320/superjob11.png" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_OyvNDtwP51Q/S0H6axA8XvI/AAAAAAAAB7U/KE1KZgAqCIM/s1600-h/superjob12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/S0H6axA8XvI/AAAAAAAAB7U/KE1KZgAqCIM/s320/superjob12.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-5335324557585452880?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/5335324557585452880/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2010/01/superjob-superjobru.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/5335324557585452880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/5335324557585452880'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2010/01/superjob-superjobru.html' title='SuperJob - официальный клиент для SuperJob.ru'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OyvNDtwP51Q/S0H9Dr7cdZI/AAAAAAAAB7c/otrrnBARyGI/s72-c/superjobicon.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-205725286727298824</id><published>2009-12-20T10:25:00.009+03:00</published><updated>2009-12-20T11:02:27.873+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Новости'/><category scheme='http://www.blogger.com/atom/ns#' term='Add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='X10'/><category scheme='http://www.blogger.com/atom/ns#' term='Sony Ericsson'/><category scheme='http://www.blogger.com/atom/ns#' term='SDK'/><title type='text'>Sony Ericsson XPERIA™ X10 add-on для Android™ SDK</title><content type='html'>Удивился, что вчера ни один сайт не написал о том, что &lt;b&gt;Sony Ericsson&lt;/b&gt; выпустил аддон для Android™ SDK, который позволяет потестировать свои Android-программы на совместимость с  XPERIA™ X10. Скачать его можно &lt;a href="http://developer.sonyericsson.com/site/global/docstools/android/p_android.jsp"&gt;тут&lt;/a&gt;, только предварительно надо зарегистрироваться. Также помимо SDK там же можно скачать инструкцию по установке аддона и запуску эмулятора (инструкция для тех, кто не в курсе, как устанавливать аддоны и создавать AVD).&lt;br /&gt;&lt;br /&gt;В чем прелесть аддона:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Фирменный splash-экран от Sony Ericsson&lt;/li&gt;&lt;li&gt;Обои для Home Screen, которые будут присутствовать в X10&lt;/li&gt;&lt;li&gt;Скин для эмулятора с фирменной оболочкой X10 - Nexus.&lt;/li&gt;&lt;li&gt;Файл настроек hardware.ini для настройки аппаратных особенностей эмулятора, соответствующих характеристикам X10 (параметры экрана, камеры, аудио и т.д.)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ниже приведено несколько скриншотов запущенного эмулятора:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_OyvNDtwP51Q/Sy3RBJ0rFSI/AAAAAAAAB5c/9bHtKbg2OqU/s1600-h/sonyericssonsdk1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/Sy3RBJ0rFSI/AAAAAAAAB5c/9bHtKbg2OqU/s320/sonyericssonsdk1.png" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_OyvNDtwP51Q/Sy3RCuLcdPI/AAAAAAAAB5k/I0RLLIMR5WI/s1600-h/sonyericssonsdk2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_OyvNDtwP51Q/Sy3RCuLcdPI/AAAAAAAAB5k/I0RLLIMR5WI/s320/sonyericssonsdk2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp; &lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/Sy3RDwwhRQI/AAAAAAAAB50/HMIcCfd-Kfc/s1600-h/sonyericssonsdk4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/Sy3RDHqwGrI/AAAAAAAAB5s/9U8amNEPUOM/s1600-h/sonyericssonsdk3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/Sy3RDHqwGrI/AAAAAAAAB5s/9U8amNEPUOM/s320/sonyericssonsdk3.png" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_OyvNDtwP51Q/Sy3RDwwhRQI/AAAAAAAAB50/HMIcCfd-Kfc/s1600-h/sonyericssonsdk4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OyvNDtwP51Q/Sy3RDwwhRQI/AAAAAAAAB50/HMIcCfd-Kfc/s320/sonyericssonsdk4.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span id="goog_1261291945319"&gt;&lt;/span&gt;&lt;span id="goog_1261291945320"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-205725286727298824?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/205725286727298824/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2009/12/sony-ericsson-xperia-x10-add-on-android.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/205725286727298824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/205725286727298824'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2009/12/sony-ericsson-xperia-x10-add-on-android.html' title='Sony Ericsson XPERIA™ X10 add-on для Android™ SDK'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OyvNDtwP51Q/Sy3RBJ0rFSI/AAAAAAAAB5c/9bHtKbg2OqU/s72-c/sonyericssonsdk1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-5700014443037342064</id><published>2009-12-16T08:25:00.000+03:00</published><updated>2009-12-16T08:25:04.132+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Советы'/><title type='text'>Использование в коде ссылки на целочисленное значение, прописанное в XML-файле ресурсов</title><content type='html'>Чаще всего в коде приходится ссылаться на строки, описанные в файле &lt;b&gt;res/strings.xml&lt;/b&gt;. Но может потребоваться хранить также и целочисленные значения, например, номер порта, который вы используете для подключения к серверу.&lt;br /&gt;&lt;br /&gt;Android поддерживает integer-ресурсы, объявленные следующим образом в любом xml-файле ресурсов:&lt;br /&gt;&lt;pre style='color:#000000;background:#ffffff;'&gt;&lt;span style='color:#004a43; '&gt;&amp;lt;?&lt;/span&gt;&lt;span style='color:#004a43; '&gt;xml&lt;/span&gt; &lt;span style='color:#004a43; '&gt;version&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#008c00; '&gt;"1.0"&lt;/span&gt; &lt;span style='color:#004a43; '&gt;encoding&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;"utf-8"&lt;/span&gt;&lt;span style='color:#004a43; '&gt;?&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#a65700; '&gt;&amp;lt;&lt;/span&gt;&lt;span style='color:#5f5035; '&gt;resources&lt;/span&gt;&lt;span style='color:#a65700; '&gt;&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style='color:#a65700; '&gt;&amp;lt;&lt;/span&gt;&lt;span style='color:#5f5035; '&gt;integer&lt;/span&gt; &lt;span style='color:#274796; '&gt;name&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;"&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;proxy_port&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;"&lt;/span&gt;&lt;span style='color:#a65700; '&gt;&gt;&lt;/span&gt;4000&lt;span style='color:#a65700; '&gt;&amp;lt;/&lt;/span&gt;&lt;span style='color:#5f5035; '&gt;integer&lt;/span&gt;&lt;span style='color:#a65700; '&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#a65700; '&gt;&amp;lt;/&lt;/span&gt;&lt;span style='color:#5f5035; '&gt;resources&lt;/span&gt;&lt;span style='color:#a65700; '&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;В Java, чтобы получить это целочисленное значение, используется следующий код:&lt;br /&gt;&lt;pre style='color:#000000;background:#ffffff;'&gt;int port = getResources().getInteger(R.integer.proxy_port)&lt;span style='color:#808030; '&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Спасибо за совет &lt;a href="http://uhanov.blogspot.com/2009/12/android-secrets-1.html"&gt;Максиму Уханову&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-5700014443037342064?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/5700014443037342064/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2009/12/xml.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/5700014443037342064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/5700014443037342064'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2009/12/xml.html' title='Использование в коде ссылки на целочисленное значение, прописанное в XML-файле ресурсов'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278839498490350396.post-1214988069476630812</id><published>2009-12-15T22:23:00.000+03:00</published><updated>2009-12-15T22:25:52.737+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Советы'/><title type='text'>Заполнение заднего фона View повторяющимся изображением (черепицей)</title><content type='html'>У каждого &lt;a href="http://developer.android.com/reference/android/view/View.html"&gt;View&lt;/a&gt; есть атрибут &lt;a href="http://developer.android.com/reference/android/view/View.html#attr_android:background"&gt;android:background&lt;/a&gt;, задать значение которого можно различными способами, в том числе указанием XML-ресурса, в котором описан способ заполнения заднего фона.&lt;br /&gt;&lt;br /&gt;Для заполнения заднего фона &lt;a href="http://developer.android.com/reference/android/view/View.html"&gt;View&lt;/a&gt; потребуется исходное изображение, которым будет заполняться фон, и XML-описание с указанием, как использовать это изображение при заполнении фона.&lt;br /&gt;&lt;br /&gt;Исходное изображение (&lt;b&gt;@drawable/pyramid (*.png)&lt;/b&gt;)&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/SyfbupRDjpI/AAAAAAAAB4o/gPp6_nHpjzU/s320/pyramid.png" /&gt;&lt;br /&gt;&lt;br /&gt;XML-описание (&lt;b&gt;@drawable/pyramidbitmap (*.xml)&lt;/b&gt;)&lt;br /&gt;&lt;pre style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: rgb(255, 255, 255) none repeat scroll 0% 0%; color: black;"&gt;&lt;span style="color: #5f5035;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;bitmap&lt;/span&gt; &lt;span style="color: #666616;"&gt;xmlns&lt;/span&gt;&lt;span style="color: purple;"&gt;:&lt;/span&gt;&lt;span style="color: #074726;"&gt;android&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #666616;"&gt;http&lt;/span&gt;&lt;span style="color: purple;"&gt;:&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;//&lt;/span&gt;&lt;span style="color: #5555dd;"&gt;schemas.android.com&lt;/span&gt;&lt;span style="color: #40015a;"&gt;/apk/res/android&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #274796;"&gt;android:src&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;@drawable/pyramid&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #274796;"&gt;android:tileMode&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;repeat&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #a65700;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;Данное описание представляет собой xml-представление объекта класса &lt;a href="http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html"&gt;BitmapDrawable&lt;/a&gt;.&lt;br /&gt;Атрибут &lt;a href="http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html#attr_android:tileMode"&gt;android:tileMode&lt;/a&gt; задает тип заполнения, в данном случае повторение исходного изображения по двум направлениям X- и Y- координат (&lt;b&gt;repeat&lt;/b&gt;), указанного в атрибуте &lt;a href="http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html#attr_android:src"&gt;android:src&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Далее для &lt;a href="http://developer.android.com/reference/android/view/View.html"&gt;View&lt;/a&gt; задается в качестве заднего фона (атрибут &lt;a href="http://developer.android.com/reference/android/view/View.html#attr_android:background"&gt;android:background&lt;/a&gt;) этот XML-файл. Для демонстрации выбран &lt;a href="http://developer.android.com/reference/android/widget/LinearLayout.html"&gt;LinearLayout&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;XML-описание:&lt;br /&gt;&lt;pre style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: rgb(255, 255, 255) none repeat scroll 0% 0%; color: black;"&gt;&lt;span style="color: #004a43;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #004a43;"&gt;xml&lt;/span&gt; &lt;span style="color: #004a43;"&gt;version&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #008c00;"&gt;"1.0"&lt;/span&gt; &lt;span style="color: #004a43;"&gt;encoding&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"utf-8"&lt;/span&gt;&lt;span style="color: #004a43;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;LinearLayout&lt;/span&gt; &lt;span style="color: #666616;"&gt;xmlns&lt;/span&gt;&lt;span style="color: purple;"&gt;:&lt;/span&gt;&lt;span style="color: #074726;"&gt;android&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #666616;"&gt;http&lt;/span&gt;&lt;span style="color: purple;"&gt;:&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;//&lt;/span&gt;&lt;span style="color: #5555dd;"&gt;schemas.android.com&lt;/span&gt;&lt;span style="color: #40015a;"&gt;/apk/res/android&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #274796;"&gt;android:layout_width&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;fill_parent&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #274796;"&gt;android:layout_height&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;fill_parent&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #274796;"&gt;android:background&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;@drawable/pyramidbitmap&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;LinearLayout&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Результат:&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OyvNDtwP51Q/SyfeaXG80QI/AAAAAAAAB4w/-_aUtqSSnMo/s320/tilebackground.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278839498490350396-1214988069476630812?l=maximyudin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maximyudin.blogspot.com/feeds/1214988069476630812/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://maximyudin.blogspot.com/2009/12/view.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/1214988069476630812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278839498490350396/posts/default/1214988069476630812'/><link rel='alternate' type='text/html' href='http://maximyudin.blogspot.com/2009/12/view.html' title='Заполнение заднего фона View повторяющимся изображением (черепицей)'/><author><name>Максим Юдин</name><uri>http://www.blogger.com/profile/12788878546666064999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_OyvNDtwP51Q/Sv5ueLO0NwI/AAAAAAAAB3I/-VPWEhTAyPY/S220/Maxim-Yudin.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OyvNDtwP51Q/SyfbupRDjpI/AAAAAAAAB4o/gPp6_nHpjzU/s72-c/pyramid.png' height='72' width='72'/><thr:total>2</thr:total></entry></feed>
