<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7308443968697740398</atom:id><lastBuildDate>Tue, 13 Aug 2019 09:22:34 +0000</lastBuildDate><category>Wheel contol</category><category>Android SDK</category><category>Background</category><category>NumericWheel</category><category>XML Drawable</category><category>Picker</category><category>Scrolling</category><category>Weather</category><category>WheelView</category><category>Animation</category><category>App widget</category><category>Date time picker</category><category>IconMenuView</category><category>Layout</category><category>ListView</category><category>Menu</category><category>Resources</category><category>Shape</category><category>TimePicker</category><category>Android images</category><category>Bitmap</category><category>Convert It</category><category>Custom items</category><category>For beginners</category><category>Gradient</category><category>Graphics</category><category>HTC</category><category>Password widget</category><category>Rounding image</category><category>SOAP</category><category>ScrollView</category><category>StaticLayout</category><category>Touch</category><category>Weather forecast</category><category>Weather provider</category><category>kSOAP 2</category><title>Android dev blog</title><description>Blog about programming for Android</description><link>http://android-devblog.blogspot.com/</link><managingEditor>noreply@blogger.com (kankan)</managingEditor><generator>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-2894388104863778791</guid><pubDate>Thu, 28 Apr 2011 08:02:00 +0000</pubDate><atom:updated>2011-05-18T21:05:44.464+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Convert It</category><title>Convert It</title><description>I&#39;m glad to inform you about publishing the unit conversion application called Convert It.&lt;br /&gt;The main reason was to have a simple unit converter without necessity of navigating through a lot of screens to set parameters for converting needed units, like it is for almost all such applications.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-WobbHtiYxts/Tb1kW4Mbk_I/AAAAAAAADRg/S7ICOsGXLvQ/s1600/conv-it-1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://3.bp.blogspot.com/-WobbHtiYxts/Tb1kW4Mbk_I/AAAAAAAADRg/S7ICOsGXLvQ/s320/conv-it-1.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-FqdoXAO9A2U/Tb1kbOX4THI/AAAAAAAADRk/QA3JbjNhTXU/s1600/conv-it-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://3.bp.blogspot.com/-FqdoXAO9A2U/Tb1kbOX4THI/AAAAAAAADRk/QA3JbjNhTXU/s320/conv-it-2.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;Next are a little description: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nothing extra. Only the categories and units that are used in everyday life.&lt;/li&gt;&lt;li&gt;A simple interface allows you to select all the options you want, without using additional screens.&lt;/li&gt;&lt;li&gt;There is an ability to copy and paste the data from the clipboard.&lt;/li&gt;&lt;li&gt;Support for Ukrainian, English and Russian languages. Using the current system language (English by default).&lt;/li&gt;&lt;/ul&gt;It has been not finished yet. It is the initial version, and I have a lot of ideas how to improve it. Also I&#39;d like to get feedback from users to make it more useful.&lt;br /&gt;&lt;br /&gt;You can download it from the &lt;a href=&quot;https://market.android.com/details?id=kankan.units.convit&quot;&gt;Android Market&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;PS I&#39;m going to describe the technical part in details in the next posts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;</description><link>http://android-devblog.blogspot.com/2011/04/convert-it.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-WobbHtiYxts/Tb1kW4Mbk_I/AAAAAAAADRg/S7ICOsGXLvQ/s72-c/conv-it-1.png" height="72" width="72"/><thr:total>11</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-8908530703810856478</guid><pubDate>Thu, 27 Jan 2011 20:30:00 +0000</pubDate><atom:updated>2011-01-28T11:04:48.016+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Custom items</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><title>Android wheel update: custom views for items</title><description>I&#39;m glad to inform you about updating &lt;a href=&quot;http://code.google.com/p/android-wheel/&quot;&gt;the wheel control&lt;/a&gt;. There has been implemented the main feature for this widget - the ability for using&amp;nbsp; custom views for wheel items, like in the ListView control.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_6ZWsj8oW5ek/TUHLiQLNzmI/AAAAAAAADPo/0SKjryIlEJg/s1600/android-wheel-cities.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/_6ZWsj8oW5ek/TUHLiQLNzmI/AAAAAAAADPo/0SKjryIlEJg/s1600/android-wheel-cities.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now it is possible to show anything in the wheel, as simple text items &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/TUHMCvNNxcI/AAAAAAAADPs/zdO_6BsXJKc/s1600/android-wheel-time.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/TUHMCvNNxcI/AAAAAAAADPs/zdO_6BsXJKc/s1600/android-wheel-time.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;... as images&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_6ZWsj8oW5ek/TUHMwrEYkAI/AAAAAAAADPw/9W9X-HocKts/s1600/android-wheel-slot-machine.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/_6ZWsj8oW5ek/TUHMwrEYkAI/AAAAAAAADPw/9W9X-HocKts/s1600/android-wheel-slot-machine.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Looks nice :)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;How to use&lt;/span&gt;&lt;br /&gt;For simple text items there can be used ArrayWheelAdapter and ArrayWheelAdapter adapters, like before. They work also with user defined layouts for items and the wheel label.&lt;br /&gt;For complex wheel items there should be used user defined adapters by implementing the WheelViewAdapter interface. For text based adapters there can be used the AbstractWheelAdapter class as a base.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Constraints&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All wheel items should have the same height to be corrected rendered. The label height should be less than the height of wheel item.&lt;br /&gt;The label width should not be so big since items are show in the rest area.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Backward compatibility&lt;/span&gt;&lt;br /&gt;All application using the wheel should work with new adapters, but with small fix: ArrayWheelAdapter and ArrayWheelAdapter adapters have been moved to the kankan.wheel.widget.adapters package.&lt;br /&gt;The old WheelAdapter interface has been set as deprecated and will be removed in next builds, with&amp;nbsp; corresponding WheelView methods. There should be used the WheelViewAdapter interface instead.</description><link>http://android-devblog.blogspot.com/2011/01/android-wheel-update-custom-views-for.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6ZWsj8oW5ek/TUHLiQLNzmI/AAAAAAAADPo/0SKjryIlEJg/s72-c/android-wheel-cities.png" height="72" width="72"/><thr:total>132</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-5438606573593809590</guid><pubDate>Tue, 18 Jan 2011 20:51:00 +0000</pubDate><atom:updated>2011-01-18T22:54:50.698+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Scrolling</category><category domain="http://www.blogger.com/atom/ns#">ScrollView</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><title>Scrolling inside ScrollView</title><description>There was an issue with wheel view related to the scrolling functionality. It did not work if wheel is placed inside a ScrollView.&lt;br /&gt;&lt;br /&gt;I&#39;ve investigated standard controls and found a one that does work alike (multiline EditText) and a one working as expected (SeekBar). I would like to check also ScrollView inside a ScrollView, but fortunately I did find a solution for this issue only by using SeekBar sources from Android SDK (I have old ones, but it was enough).&lt;br /&gt;&lt;br /&gt;The main problem was with &lt;i&gt;&lt;b&gt;WheelView.onTouchEvent() &lt;/b&gt;&lt;/i&gt;- it did not receive all touch events because they were processed by parent (scroll view). So it needed to ask the ScrollView to skip touch events and allow the wheel to perform them by &lt;i&gt;&lt;b&gt;onTouchEvent()&lt;/b&gt;&lt;/i&gt;. There is a corresponding method for a parent view called &lt;i&gt;&lt;b&gt;ViewParent.requestDisallowInterceptTouchEvent().&lt;/b&gt;&lt;/i&gt; SeekBar calls it during handling the &lt;i&gt;&lt;b&gt;ACTION_MOVE&lt;/b&gt;&lt;/i&gt; touch event action. I&#39;ve added this approach to the wheel view and it works too! :)&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; overflow: auto;&quot;&gt;&lt;pre class=&quot;java5&quot; style=&quot;font-family: monospace;&quot;&gt;@&lt;span style=&quot;color: #003399; font-weight: bold;&quot;&gt;Override&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;boolean&lt;/span&gt; onTouchEvent&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;MotionEvent event&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;getViewAdapter&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; == &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;!&lt;/span&gt;gestureDetector.&lt;span style=&quot;color: #006633;&quot;&gt;onTouchEvent&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;event&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; event.&lt;span style=&quot;color: #006633;&quot;&gt;getAction&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; == MotionEvent.&lt;span style=&quot;color: #006633;&quot;&gt;ACTION_UP&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;        justify&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;// Fix scrolling&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;event.&lt;span style=&quot;color: #006633;&quot;&gt;getAction&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; == MotionEvent.&lt;span style=&quot;color: #006633;&quot;&gt;ACTION_MOVE&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; getParent&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;!&lt;/span&gt;= &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;        getParent&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;.&lt;span style=&quot;color: #006633;&quot;&gt;requestDisallowInterceptTouchEvent&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    &lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #009900;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: small;&quot;&gt;I&#39;m unable to commit this fix now because of working on &lt;/span&gt;custom views for wheel items; will do that later. So please fix your code manually. Thanks!</description><link>http://android-devblog.blogspot.com/2011/01/scrolling-inside-scrollview.html</link><author>noreply@blogger.com (kankan)</author><thr:total>10</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-1875163686199926828</guid><pubDate>Thu, 25 Nov 2010 20:30:00 +0000</pubDate><atom:updated>2010-11-25T22:30:13.914+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Animation</category><category domain="http://www.blogger.com/atom/ns#">Picker</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><category domain="http://www.blogger.com/atom/ns#">WheelView</category><title>Android wheel update: animation</title><description>The wheel widget has been updated. There has been added the main feature - animation.&lt;br /&gt;Now it is possible to scroll the wheel automatically by using the finger fling.&lt;br /&gt;In the same way there is the ability to scroll the wheel programmatically by using next methods:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;void setCurrentItem(int index, boolean animated)&lt;/b&gt;&lt;/i&gt; - scrolls to specified items if &lt;i&gt;animated&lt;/i&gt; is true&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;void scroll(int itemsToScroll, int time)&lt;/b&gt;&lt;/i&gt; - scrolls up/down by &lt;i&gt;itemsToScroll&lt;/i&gt; items&lt;/li&gt;&lt;/ul&gt;The main feature that is not implemented at this moment is custom views for wheel items. It will be implemented soon.</description><link>http://android-devblog.blogspot.com/2010/11/android-wheel-update-animation.html</link><author>noreply@blogger.com (kankan)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-8159889759719149075</guid><pubDate>Fri, 19 Nov 2010 19:27:00 +0000</pubDate><atom:updated>2010-11-19T21:29:13.306+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Weather</category><category domain="http://www.blogger.com/atom/ns#">Weather forecast</category><category domain="http://www.blogger.com/atom/ns#">Weather provider</category><title>Weather forecast widget: Weather providers</title><description>The one of main parts of weather forecast widget is communication with weather provider.&lt;br /&gt;&lt;br /&gt;I have found next providers (please let me know if you know another ones) that work only with the US cities (except Google weather):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.freecomputeradvice.net/2009/08/google-weather-api.html&quot;&gt;Google weather API&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.webservicex.net/WeatherForecast.asmx&quot;&gt;WeatherForecast web service from www.webservicex.net&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.weather.gov/forecasts/xml/&quot;&gt;National Digital Forecast Database&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Google weather API&lt;/span&gt;&lt;br /&gt;Google provides API for getting weather data for US cities by name.&lt;br /&gt;Next is the link to get weather data &lt;br /&gt;&lt;div style=&quot;color: #20124d; text-align: center;&quot;&gt;&lt;b&gt;http://www.google.com/ig/api?weather=&lt;i&gt;City&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;The received weather data are stored in XML and contains next:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Information about received data (city name, state, forecast date)&lt;/li&gt;&lt;li&gt;Current weather conditions:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Conditions (Sunny, Rain, Cloudy, Showers etc) &lt;/li&gt;&lt;li&gt;Temperature (both Celsius and Fahrenheit)&lt;/li&gt;&lt;li&gt;Humidity (in percents)&lt;/li&gt;&lt;li&gt;Wind conditions&lt;/li&gt;&lt;li&gt;Weather icon (link to icon stored on Google)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Weather forecast for next few days:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Day of week of forecast (Mon, Tue, Wed etc)&lt;/li&gt;&lt;li&gt;Conditions (Rain, Cloudy, Showers etc)&amp;nbsp; &lt;/li&gt;&lt;li&gt;Low temperature (in Fahrenheit)&lt;/li&gt;&lt;li&gt;High temperature (in Fahrenheit)&lt;/li&gt;&lt;li&gt;Weather icon (link to icon stored on Google)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Here is a sample XML &lt;a href=&quot;http://www.google.com/ig/api?weather=New+York&quot;&gt;received for NY&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 150px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;xml_api_reply &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;weather &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;module_id&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; tab_id&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; mobile_row&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; mobile_zipped&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; row&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; section&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp; &lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;forecast_information&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;city &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;New York, NY&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;postal_code &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;new york,ny&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;latitude_e6 &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;longitude_e6 &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;forecast_date &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;2010-05-20&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;current_date_time &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;2010-05-20 07:44:43 +0000&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;unit_system &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;US&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;forecast_information&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;current_conditions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;condition &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Cloudy&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;temp_f &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;59&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;temp_c &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;15&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;humidity &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Humidity: 80%&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;icon &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;/ig/images/weather/cloudy.gif&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;wind_condition &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Wind: N at 0 mph&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;current_conditions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;forecast_conditions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;day_of_week &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Thu&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;low &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;61&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;high &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;79&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;icon &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;/ig/images/weather/sunny.gif&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;condition &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Sunny&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;forecast_conditions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;forecast_conditions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;day_of_week &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Fri&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;low &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;60&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;high &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;83&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;icon &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;/ig/images/weather/partly_cloudy.gif&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;condition &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Partly Cloudy&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;forecast_conditions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;weather&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;xml_api_reply&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Next are some Google weather icons:&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.google.com/ig/images/weather/partly_cloudy.gif&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.google.com/ig/images/weather/partly_cloudy.gif&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://www.google.com/ig/images/weather/cloudy.gif&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.google.com/ig/images/weather/cloudy.gif&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://www.google.com/ig/images/weather/sunny.gif&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.google.com/ig/images/weather/sunny.gif&quot; /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;WeatherForecast  web service from www.webservicex.net&lt;/span&gt;&lt;br /&gt;This web service supports the following two operations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;GetWeatherByPlaceName&lt;/b&gt;&lt;/i&gt; - returns weather forecast for a place  name (US cities only)                                &lt;/li&gt;&lt;li&gt;                 &lt;i&gt;&lt;b&gt;GetWeatherByZipCode&lt;/b&gt;&lt;/i&gt; - returns weather forecast for a Zip  Code (US only)                                &lt;/li&gt;&lt;/ul&gt;The first one looks like the Google Weather API defined above. Let investigate it.&lt;br /&gt;To get weather forecast for city it is possible to use HTTP POST request, like &lt;a href=&quot;http://www.webservicex.net/WeatherForecast.asmx/GetWeatherByPlaceName?PlaceName=New+York&quot;&gt;this (for New York)&lt;/a&gt;.&lt;br /&gt;The received weather data are stored in XML:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Information  about received data (city name, latitude &amp;amp; longitude, state)&lt;/li&gt;&lt;li&gt;Weather forecast for next week:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Date for forecast &lt;/li&gt;&lt;li&gt;Low temperature in Fahrenheit and Celsius&lt;/li&gt;&lt;li&gt;High temperature in Fahrenheit and Celsius&lt;/li&gt;&lt;li&gt;Weather icon (link to icon from &lt;a href=&quot;http://forecast.weather.gov/&quot;&gt;forecast.weather.gov&lt;/a&gt;, see below NDFD)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;As you can see, there are poor weather data, but they contain almost all that we need, excluding weather conditions.&lt;br /&gt;Next is a sample XML for NY&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 150px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherForecasts&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Latitude&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;40.74838&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Latitude&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Longitude&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;73.9967041&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Longitude&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;AllocationFactor&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0.001051&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;AllocationFactor&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;FipsCode&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;36&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;FipsCode&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;PlaceName&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;NEW YORK&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;PlaceName&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;StateCode&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;NY&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;StateCode&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Details&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Tuesday, May 25, 2010&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://forecast.weather.gov/images/wtf/few.jpg&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;86&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;59&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;15&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Wednesday, May 26, 2010&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://forecast.weather.gov/images/wtf/sct.jpg&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;92&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;66&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;33&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;19&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Thursday, May 27, 2010&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://forecast.weather.gov/images/wtf/sct.jpg&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;88&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;63&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;31&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;17&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Friday, May 28, 2010&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://forecast.weather.gov/images/wtf/tsra30.jpg&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;77&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;64&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;25&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Saturday, May 29, 2010&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Day&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://forecast.weather.gov/images/wtf/scttsra30.jpg&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherImage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;73&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;61&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureF&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;23&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MaxTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;MinTemperatureC&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherData&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;Details&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;WeatherForecasts&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Note this Web service is unavailable time to time.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;National Digital  Forecast Database&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;http://www.weather.gov/ndfd/&quot;&gt;National Digital Forecast                 Database&lt;/a&gt; (NDFD) SOAP web service provides data from the National Weather Service’s (NWS)  digital                 forecast database. It uses XML to store weather data. The NDFD XML language is called  Digital               Weather Markup Language (DWML) and its schema can be found &lt;a href=&quot;http://www.weather.gov/forecasts/xml/DWMLgen/schema/DWML.xsd&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;NDFD web service contains &lt;a href=&quot;http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php&quot;&gt;a lot of functions&lt;/a&gt; to get weather data. &lt;a href=&quot;http://www.weather.gov/forecasts/xml/SOAP_server/ndfdSOAPByDay.htm&quot;&gt;This page&lt;/a&gt; uses one of them.&lt;br /&gt;&lt;br /&gt;Next is the XML data for &lt;a href=&quot;http://www.weather.gov/forecasts/xml/SOAP_server/ndfdSOAPclientByDay.php?whichClient=NDFDgenByDay&amp;amp;lat=38.99&amp;amp;lon=-77.01&amp;amp;listLatLon=&amp;amp;lat1=&amp;amp;lon1=&amp;amp;lat2=&amp;amp;lon2=&amp;amp;resolutionSub=&amp;amp;endPoint1Lat=&amp;amp;endPoint1Lon=&amp;amp;endPoint2Lat=&amp;amp;endPoint2Lon=&amp;amp;zipCodeList=&amp;amp;centerPointLat=&amp;amp;centerPointLon=&amp;amp;distanceLat=&amp;amp;distanceLon=&amp;amp;resolutionSquare=&amp;amp;citiesLevel=&amp;amp;format=24+hourly&amp;amp;startDate=2010-05-21&amp;amp;numDays=2&amp;amp;Submit=Submit&quot;&gt;Baltimore, MD (please correct date in link)&lt;/a&gt; received from NDFDgenByDay&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 150px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;dwml &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;1.0&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; xsi:noNamespaceSchemaLocation&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;http://www.nws.noaa.gov/forecasts/xml/DWMLgen/schema/DWML.xsd&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;product &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;srsName&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;WGS 1984&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; concise-name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;dwmlByDay&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; operational-mode&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;official&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;NOAA&#39;s National Weather Service Forecast by 24 Hour Period&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;meteorological&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;category&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;forecast&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;category&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;creation-date &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;refresh-frequency&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;PT1H&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-21T08:45:54Z&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;creation-date&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;product&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;more-information&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.nws.noaa.gov/forecasts/xml/&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;more-information&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;production-center&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Meteorological Development Laboratory&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;sub-center&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Product Generation Branch&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;sub-center&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;production-center&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;disclaimer&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.nws.noaa.gov/disclaimer.html&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;disclaimer&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;credit&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.weather.gov/&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;credit&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;credit-logo&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.weather.gov/images/xml_logo.gif&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;credit-logo&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;feedback&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.weather.gov/feedback.php&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;feedback&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;location-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;point1&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;location-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;point &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;latitude&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;39.29&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; longitude&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;-76.61&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;moreWeatherInformation &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;applicable-location&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;point1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://forecast.weather.gov/MapClick.php?textField1=39.29&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;amp;textField2&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=-76.61&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;moreWeatherInformation&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;time-layout &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;time-coordinate&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;local&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; summarization&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;24hourly&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;layout-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;k-p24h-n2-1&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;layout-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-21T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-22T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-22T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-23T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;time-layout &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;time-coordinate&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;local&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; summarization&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;12hourly&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;layout-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;k-p12h-n4-2&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;layout-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-20T18:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-21T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-21T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-21T18:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-21T18:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-22T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-22T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-22T18:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;time-layout &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;time-coordinate&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;local&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; summarization&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;24hourly&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;layout-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;k-p2d-n1-3&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;layout-key&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-21T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;start-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2010-05-23T06:00:00-04:00&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;end-valid-time&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;parameters &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;applicable-location&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;point1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;temperature &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;maximum&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; units&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Fahrenheit&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;k-p24h-n2-1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Daily Maximum Temperature&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;86&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;73&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;temperature&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;temperature &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;minimum&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; units&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Fahrenheit&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;k-p24h-n2-1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Daily Minimum Temperature&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;63&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;63&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;temperature&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;probability-of-precipitation &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;12 hour&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; units&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;percent&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;k-p12h-n4-2&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;12 Hourly Probability of Precipitation&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;17&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;39&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;probability-of-precipitation&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;weather &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;k-p24h-n2-1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Weather Type, Coverage, and Intensity&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;weather-conditions &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;weather-summary&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Partly Sunny&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;weather-conditions &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;weather-summary&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;Chance Thunderstorms&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;coverage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;chance&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; intensity&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;none&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; weather-type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;thunderstorms&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; qualifier&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;none&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;value &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;coverage&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;chance&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; intensity&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;light&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; additive&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;and&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; weather-type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;rain showers&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; qualifier&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;none&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;weather-conditions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;weather&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;conditions-icon &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;forecast-NWS&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;k-p24h-n2-1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Conditions Icons&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;icon-link&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.nws.noaa.gov/weather/images/fcicons/sct.jpg&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;icon-link&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;icon-link&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.nws.noaa.gov/weather/images/fcicons/tsra40.jpg&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;icon-link&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;conditions-icon&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;hazards &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;time-layout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;k-p2d-n1-3&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Watches, Warnings, and Advisories&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;hazard-conditions &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;xsi:nil&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;true&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;hazards&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;parameters&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;dwml&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Next are some weather icons:&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://forecast.weather.gov/images/wtf/sct.jpg&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://forecast.weather.gov/images/wtf/sct.jpg&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://forecast.weather.gov/images/wtf/scttsra40.jpg&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://forecast.weather.gov/images/wtf/scttsra40.jpg&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://forecast.weather.gov/images/wtf/nshra50.jpg&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://forecast.weather.gov/images/wtf/nshra50.jpg&quot; /&gt;&lt;/a&gt;  &lt;a href=&quot;http://forecast.weather.gov/images/wtf/ntsra30.jpg&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://forecast.weather.gov/images/wtf/ntsra30.jpg&quot; /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;NDFD provides all necessary weather data for each point of the USA and I suppose all defined above providers use data from this one.&lt;br /&gt;The disadvantage of using NDFD web service from Android, is the used DWML format for storing weather data. It is some difficult to parse it.&lt;br /&gt;&lt;br /&gt;As for me, it&#39;s enough to use the Google provider - it provides as current condition as forecast for next few days stored in simple XML.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Note this post was created in May 2010; I planned to post it before, but did not have enough time to finish it. This is why there is used weather data for the May month.&lt;/span&gt;</description><link>http://android-devblog.blogspot.com/2010/11/weather-forecast-widget-weather.html</link><author>noreply@blogger.com (kankan)</author><thr:total>13</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-4771860704643950271</guid><pubDate>Fri, 12 Nov 2010 19:46:00 +0000</pubDate><atom:updated>2010-11-19T21:30:44.188+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">For beginners</category><category domain="http://www.blogger.com/atom/ns#">Weather</category><title>Project for beginners</title><description>The main problem for beginners is to choose a project to learn Android. It needs to invent a test app for each topic from Android SDK Developer&#39;s Guide. And as a result there are lots projects that in general don&#39;t have any value.&lt;br /&gt;&lt;br /&gt;It would be better to choose a one project that covers as much as possible items from Android SDK. A one of good project that helps learning Android is the Weather forecast App widget.&lt;br /&gt;&lt;br /&gt;There can be covered next items:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;App Widgets&lt;/li&gt;&lt;li&gt;User Interface (layouts, menus, dialogs etc.)&lt;/li&gt;&lt;li&gt;Resources (drawables, stings, styles &amp;amp; themes)&lt;/li&gt;&lt;li&gt;Intents&lt;/li&gt;&lt;li&gt; Content Providers&lt;/li&gt;&lt;li&gt;XML and Web servers (weather providers)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&amp;nbsp;I&#39;ve found my Weather App widget and I see it is not bad as for beginner. The main problems were to work with &lt;a href=&quot;http://android-devblog.blogspot.com/2010/11/weather-forecast-widget-weather.html&quot;&gt;weather providers&lt;/a&gt; and design widget view. In one of next topic I&#39;ll describe it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;</description><link>http://android-devblog.blogspot.com/2010/11/project-for-beginners.html</link><author>noreply@blogger.com (kankan)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-8436325978310244105</guid><pubDate>Sat, 30 Oct 2010 18:53:00 +0000</pubDate><atom:updated>2010-10-30T21:57:08.047+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Animation</category><category domain="http://www.blogger.com/atom/ns#">Scrolling</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><category domain="http://www.blogger.com/atom/ns#">WheelView</category><title>Android wheel update: scrolling</title><description>I&#39;m glad to inform that &lt;a href=&quot;http://code.google.com/p/android-wheel/&quot;&gt;the Android wheel widget&lt;/a&gt; has been updated.&lt;br /&gt;Now scrolling feature looks more user friendly and the wheel is updated smoothly, like expected.&lt;br /&gt;&lt;br /&gt;I&#39;ve also renamed methods of the scrolling listener interface to make them clear to understand. They are called now &lt;i&gt;onScrollingStarted()&lt;/i&gt; and &lt;i&gt;onScrollingFinished()&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The next feature planned to be added is the animation. It is the main feature of Wheel control, and in the same time it is the most difficult to implement. So, it requires some time to be done, and I hope I will have enough time to do that.&lt;br /&gt;&lt;br /&gt;BTW, some people&lt;a href=&quot;http://stackoverflow.com/questions/3929415/add-animation-to-android-wheel&quot;&gt; try to implement the animation&lt;/a&gt;,&amp;nbsp; moreover, there is an &lt;a href=&quot;http://www.freelancer.com/projects/Mobile-Phone-Android/Android-Spinning-Wheel-Widget-View.html&quot;&gt;job offer&lt;/a&gt; that asks to implement the animation for the money :)&lt;br /&gt;Unfortunately, I&#39;m not able to do that as quick as expected, so they could wait for 1-2 months until I implement that.</description><link>http://android-devblog.blogspot.com/2010/10/android-wheel-update-scrolling.html</link><author>noreply@blogger.com (kankan)</author><thr:total>10</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-3888629252588536836</guid><pubDate>Sun, 29 Aug 2010 18:56:00 +0000</pubDate><atom:updated>2010-08-29T21:56:09.935+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Date time picker</category><category domain="http://www.blogger.com/atom/ns#">Picker</category><category domain="http://www.blogger.com/atom/ns#">TimePicker</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><title>Android wheel update: event listeners</title><description>&lt;a href=&quot;http://code.google.com/p/android-wheel&quot;&gt;The wheel control&lt;/a&gt; has been updated.&lt;br /&gt;There have been added next wheel event listeners:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;OnWheelChangedListener&lt;/b&gt;&lt;/i&gt; - onChange() callback is invoked &lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;whenever current wheel position is changed &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;OnWheelScrollListener&lt;/b&gt;&lt;/i&gt; - onScrollStarts() and onScrollEnds() callbacks are invoked when wheel begins/ends being scrolling.&lt;/li&gt;&lt;/ul&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Also there have been updated demo activities to show how events are performed.&lt;br /&gt;&lt;br /&gt;The time activity updates the time picker labels according to selected value. If there is chosen the &lt;i&gt;&lt;b&gt;&quot;1&quot;&lt;/b&gt;&lt;/i&gt; value the label has the singular form (&lt;i&gt;hour&lt;/i&gt; or &lt;i&gt;min&lt;/i&gt;), otherwise plural form is used (&lt;i&gt;hours&lt;/i&gt; or &lt;i&gt;mins&lt;/i&gt;).&lt;br /&gt;There is also added a standard Android time picker that is synchronized with used time picker via events listeners.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/THqrKlOCwgI/AAAAAAAADMo/HsVa-swZCVs/s1600/android-time-picker.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/THqrKlOCwgI/AAAAAAAADMo/HsVa-swZCVs/s400/android-time-picker.jpg&quot; width=&quot;272&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The password activity has been also changed. It checks the entered PIN. Note that PIN is been not validating when one of wheel is scrolled.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/THqsoHDf41I/AAAAAAAADMw/Ph14FjMTJjI/s1600/android-pin.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/THqsoHDf41I/AAAAAAAADMw/Ph14FjMTJjI/s400/android-pin.jpg&quot; width=&quot;270&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;The valid PIN is 2461 :)&lt;/span&gt;</description><link>http://android-devblog.blogspot.com/2010/08/android-wheel-update-event-listeners.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6ZWsj8oW5ek/THqrKlOCwgI/AAAAAAAADMo/HsVa-swZCVs/s72-c/android-time-picker.jpg" height="72" width="72"/><thr:total>20</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-3174119226060636053</guid><pubDate>Mon, 16 Aug 2010 12:11:00 +0000</pubDate><atom:updated>2010-08-16T15:31:25.339+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Bitmap</category><category domain="http://www.blogger.com/atom/ns#">Graphics</category><category domain="http://www.blogger.com/atom/ns#">Rounding image</category><title>Rounding picture</title><description>Suppose we have an image and we would like to make it&#39;s corners rounded.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_6ZWsj8oW5ek/TGfe_xtd6nI/AAAAAAAADLw/zai1D9-Ff1I/s1600/rounded.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/_6ZWsj8oW5ek/TGfe_xtd6nI/AAAAAAAADLw/zai1D9-Ff1I/s320/rounded.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;The main idea is to combine the original image and already prepared rounded image with the same height and width, and use only those pixels from original image that are present at the rounded one:&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/TGfnmfmg4vI/AAAAAAAADL4/o1UFMIRZgMI/s1600/and_round.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/TGfnmfmg4vI/AAAAAAAADL4/o1UFMIRZgMI/s320/and_round.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;Next code does that by using &lt;i&gt;&lt;b&gt;PorterDuffXfermode&lt;/b&gt;&lt;/i&gt; &lt;a href=&quot;http://developer.android.com/reference/android/graphics/Xfermode.html&quot;&gt;&lt;span class=&quot;class&quot;&gt;Xfermode&lt;/span&gt;&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 280px; overflow: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; Creates rounded bitmap&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; bitmap the source bitmap&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;@return&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; the rounded bitmap&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;static&lt;/span&gt; Bitmap createRoundedBitmap(Bitmap bitmap, int round) {&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (bitmap == &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;) {&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;        &lt;br /&gt;    Rect rect = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// create output bitmap&lt;/span&gt;&lt;br /&gt;    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// assign canvas with output bitmap&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;Canvas&lt;/span&gt; canvas = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;Canvas&lt;/span&gt;(output);&lt;br /&gt;    canvas.drawARGB(0, 0, 0, 0);&lt;br /&gt;        &lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// initialize paint&lt;/span&gt;&lt;br /&gt;    Paint paint = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; Paint();&lt;br /&gt;    paint.setAntiAlias(&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;true&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// draw rounded rect to bitmap&lt;/span&gt;&lt;br /&gt;    paint.setColor(0xFFFFFFFF);&lt;br /&gt;    canvas.drawRoundRect(&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; RectF(rect), round, round, paint);&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// copy original bitmap to rounded area&lt;/span&gt;&lt;br /&gt;    paint.setXfermode(&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; PorterDuffXfermode(Mode.SRC_IN));&lt;br /&gt;    canvas.drawBitmap(bitmap, rect, rect, paint);&lt;br /&gt;        &lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;return&lt;/span&gt; output;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;br /&gt;There was used &lt;a href=&quot;http://www.google.com/ig/images/weather/partly_cloudy.gif&quot;&gt;an icon&lt;/a&gt; from Google weather API.&lt;br /&gt;There are &lt;a href=&quot;http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html&quot;&gt;different modes&lt;/a&gt; for the Porter-Duff composing, and next picture from &lt;a href=&quot;http://www.w3.org/TR/2002/WD-SVG11-20020215/masking.html&quot;&gt;w3.org&lt;/a&gt; shows some of them:&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.w3.org/TR/2002/WD-SVG11-20020215/images/masking/compops.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;265&quot; src=&quot;http://www.w3.org/TR/2002/WD-SVG11-20020215/images/masking/compops.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://android-devblog.blogspot.com/2010/08/rounding-picture.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6ZWsj8oW5ek/TGfe_xtd6nI/AAAAAAAADLw/zai1D9-Ff1I/s72-c/rounded.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-4364762686882610167</guid><pubDate>Mon, 12 Jul 2010 08:08:00 +0000</pubDate><atom:updated>2010-08-29T21:37:06.486+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Picker</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><category domain="http://www.blogger.com/atom/ns#">WheelView</category><title>Android wheel Google code project</title><description>I&#39;ve upload my wheel widget to the &lt;a href=&quot;http://code.google.com/p/android-wheel/&quot;&gt;Google code&lt;/a&gt; and time to time update it.&lt;br /&gt;&lt;br /&gt;At this moment I&#39;ve implemented adapters for wheel view called &lt;i&gt;ArrayWheelAdapter &lt;/i&gt;and &lt;i&gt;NumericWheelAdapter&lt;/i&gt;. There has been created demo app that contains activities for all these adapters.&lt;br /&gt;The &lt;i&gt;NumericWheelAdapter &lt;/i&gt;demos look like in original &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;NumericWheel control&lt;/a&gt; (password and date picker activity). And &lt;i&gt;ArrayWheelAdapter &lt;/i&gt;is used to set text to wheel items, like next.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/TDrIrMtG0sI/AAAAAAAADJY/hZKuYILbIlc/s1600/and_city.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/TDrIrMtG0sI/AAAAAAAADJY/hZKuYILbIlc/s400/and_city.JPG&quot; width=&quot;267&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I hope this project will be useful for developers.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Updated:&lt;/b&gt;&lt;/i&gt; You can find my control by Google - it is a one of the top item of&amp;nbsp; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=android+wheel&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=&quot;&gt;search results&lt;/a&gt;.</description><link>http://android-devblog.blogspot.com/2010/07/android-wheel-google-code-project.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6ZWsj8oW5ek/TDrIrMtG0sI/AAAAAAAADJY/hZKuYILbIlc/s72-c/and_city.JPG" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-4584617015776034384</guid><pubDate>Tue, 15 Jun 2010 11:05:00 +0000</pubDate><atom:updated>2010-06-16T13:19:05.311+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">kSOAP 2</category><category domain="http://www.blogger.com/atom/ns#">SOAP</category><category domain="http://www.blogger.com/atom/ns#">Weather</category><title>SOAP on Android</title><description>Some projects require to communicate with Web services.&lt;br /&gt;The JDK provides tool called &lt;i&gt;&lt;b&gt;wsimport &lt;/b&gt;&lt;/i&gt;that generates classes from WSDL, and user works with them like with other Java classes and may not know that he works with a Web service.&lt;br /&gt;&lt;br /&gt;But it does not work on Android... Android&amp;nbsp; SDK does not provide classes to work with Web services. So, it needs to manually work with Web services by using SOAP.&lt;br /&gt;&lt;br /&gt;There is a good library called &lt;a href=&quot;http://ksoap2.sourceforge.net/&quot;&gt;kSOAP 2&lt;/a&gt; that is a lightweight SOAP Web service client library for constrained Java environments such as Applets or J2ME applications. There is a port of this library to Android platform that is allowed on &lt;a href=&quot;http://code.google.com/p/ksoap2-android/&quot;&gt;Google code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Weather forecast Web service&lt;/span&gt;&lt;br /&gt;Lets try to use kSOAP 2 for getting weather forecast from the &lt;a href=&quot;http://www.webservicex.net/WeatherForecast.asmx?WSDL&quot;&gt;WeatherForecast Web service&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Next code calls the&lt;span style=&quot;color: #2a00ff;&quot;&gt; &lt;i&gt;&lt;b&gt;&lt;span style=&quot;color: black;&quot;&gt;GetWeatherByPlaceName&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;color: #2a00ff;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;/i&gt;operation on Web service to get weather forecast for specified city for next few days &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;public&lt;/span&gt; SoapObject getWeather(String city) &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;throws&lt;/span&gt; Exception {&lt;br /&gt;    SoapObject request = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; SoapObject(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;http://www.webservicex.net&quot;&lt;/span&gt;, &lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;GetWeatherByPlaceName&quot;&lt;/span&gt;);&lt;br /&gt;    request.addProperty(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;PlaceName&quot;&lt;/span&gt;, city);&lt;br /&gt;        &lt;br /&gt;    SoapSerializationEnvelope envelope = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; SoapSerializationEnvelope(SoapEnvelope.VER11);&lt;br /&gt;    envelope.setOutputSoapObject(request);&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// It seems that it is a .NET Web service because it doesn&#39;t work without next line&lt;/span&gt;&lt;br /&gt;    envelope.dotNet = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    HttpTransportSE transport = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; HttpTransportSE(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;http://www.webservicex.net/WeatherForecast.asmx&quot;&lt;/span&gt;);&lt;br /&gt;    transport.call(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;http://www.webservicex.net/GetWeatherByPlaceName&quot;&lt;/span&gt;, envelope);&lt;br /&gt;    &lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;return&lt;/span&gt; (SoapObject) envelope.getResponse();&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;As you can see it&#39;s easy. But it needs also to parse data received from the Web service.&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;public&lt;/span&gt; List&amp;lt;CharSequence&amp;gt; getWeatherForecast(String city) &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;throws&lt;/span&gt; Exception {&lt;br /&gt;    SoapObject obj = getWeather(city);&lt;br /&gt;    SoapObject details = (SoapObject) obj.getProperty(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;Details&quot;&lt;/span&gt;);&lt;br /&gt;        &lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;List&lt;/span&gt;&amp;lt;CharSequence&amp;gt; list = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; ArrayList&amp;lt;CharSequence&amp;gt;(details.getPropertyCount());&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;for&lt;/span&gt; (&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;int&lt;/span&gt; i = 0; i &amp;lt; details.getPropertyCount(); i++) {&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;Object&lt;/span&gt; property = details.getProperty(i);&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (property &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;instanceof&lt;/span&gt; SoapObject) {&lt;br /&gt;            SoapObject weather = (SoapObject) property;&lt;br /&gt;            &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;String&lt;/span&gt; day = weather.getProperty(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;Day&quot;&lt;/span&gt;).toString();&lt;br /&gt;            &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;String&lt;/span&gt; min = weather.getProperty(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;MinTemperatureF&quot;&lt;/span&gt;).toString();&lt;br /&gt;            &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;String&lt;/span&gt; max = weather.getProperty(&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;MaxTemperatureF&quot;&lt;/span&gt;).toString();&lt;br /&gt;                &lt;br /&gt;            list.add(day + &lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot; :: &quot;&lt;/span&gt; + min + &lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;-&quot;&lt;/span&gt; + max);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;return&lt;/span&gt; list;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Next are weather forecast for the Atlanta city, received by using this routine.&lt;br /&gt;&lt;div style=&quot;border: 1px solid black;&quot;&gt;[Tuesday, June 15, 2010 :: 77-90, Wednesday, June 16, 2010 :: 73-92, Thursday, June 17, 2010 :: 73-95, Friday, June 18, 2010 :: 74-96, Saturday, June 19, 2010 :: 75-95, Sunday, June 20, 2010 :: 74-96, Monday, June 21, 2010 :: 74-96] &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Note: .NET services&lt;/span&gt;&lt;br /&gt;There are problems with .Net Web services, so it needs to set the &lt;i&gt;&lt;b&gt;dotNet &lt;/b&gt;&lt;/i&gt;variable of the &lt;i&gt;&lt;b&gt;SoapSerializationEnvelope&lt;/b&gt;&lt;/i&gt; class. Next are Java docs about it. &lt;br /&gt;&lt;div style=&quot;border: 1px solid black;&quot;&gt;&lt;h3&gt;dotNet&lt;/h3&gt;&lt;pre&gt;public boolean &lt;b&gt;dotNet&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&amp;nbsp; Set this variable to true for compatibility with what seems to be  the  default encoding for .Net-Services. This&amp;nbsp; feature is an extremely ugly  hack. A much better option is to change the configuration of the  .Net-Server to standard Soap Serialization! &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Note: Weather forecast Web service&lt;/span&gt;&lt;br /&gt;The WeatherForecast Web service works also with HTTP POST and GET requests, that don&#39;t  requires using SOAP. But you should parse received XML manually. &lt;a href=&quot;http://www.webservicex.net/WeatherForecast.asmx?op=GetWeatherByPlaceName&quot;&gt;This  page&lt;/a&gt; contains their descriptions and the Test form.</description><link>http://android-devblog.blogspot.com/2010/06/soap-on-android.html</link><author>noreply@blogger.com (kankan)</author><thr:total>13</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-3843668589948406902</guid><pubDate>Wed, 02 Jun 2010 08:54:00 +0000</pubDate><atom:updated>2010-06-10T10:33:40.046+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><title>Wheel UI contol: ideas for the future</title><description>The wheel control described in previous posts contains all necessary functionality and is ready for using by other applications.&lt;br /&gt;But I would consider it just as a draft for a real wheel view. It needs to &quot;tune&quot; this control to make it more attractive.&lt;br /&gt;Next are some ideas that I&#39;d like to realize:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Implement the animation like in the original iPhone widget&lt;/li&gt;&lt;li&gt;Add the ability to work not only with numbers. Make it to use Adapters like the ListView.&lt;/li&gt;&lt;li&gt;Make the control to be  composed. It should contain as much wheels as necessary, so it will allow to avoid defining a set of the wheels for complex widget, like for password and date time picker widgets from &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;the first post about the wheel widget&lt;/a&gt;. It can be used by next way:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 150px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #3f7f59;&quot;&gt; // Get the wheel view&lt;/span&gt;&lt;br /&gt; WheelView picker = (WheelView) findViewById(R.id.date_time);&lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Add the hours wheel&lt;/span&gt;&lt;br /&gt; WheelViewSection hours = picker.addSection(&quot;hours&quot;);&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Set adapter for hours.&lt;/span&gt;&lt;br /&gt; hours.setAdapter(new NumericAdapter(0, 23));&lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Add the mins wheel&lt;/span&gt;&lt;br /&gt; WheelViewSection mins = picker.addSection(&quot;mins&quot;);&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Set adapter for it&lt;/span&gt;&lt;br /&gt; mins.setAdapter(new NumericAdapter(0, 59));&lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Set current values&lt;/span&gt;&lt;br /&gt; Calendar c = Calendar.getInstance();&lt;br /&gt; mins.setSelectedIndex(c.get(Calendar.MINUTE));&lt;br /&gt; hours.setSelectedIndex(c.get(Calendar.HOUR_OF_DAY));&lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Get password view&lt;/span&gt;&lt;br /&gt; WheelView passw = (WheelView) findViewById(R.id.passw);&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Set count of sections&lt;/span&gt;&lt;br /&gt; passw.setSectionCount(4);&lt;br /&gt; &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Set numeric adapter for all sections&lt;/span&gt;&lt;br /&gt; passw.setAdapter(new NumericAdapter(0, 9));&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Repeat the wheel items when necessary. It means to show the first item after the last one. For example, when user select 59 mins there will be shown the 0 and 1 value below; for hours it can be not used and it can show blank items below the 23 and above the 0 hours.&lt;/li&gt;&lt;/ol&gt;It&#39;s all the ideas that I have at this moment. If you have more ideas please let me know.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;See also&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;Introduction    to the Wheel control&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-layouts.html&quot;&gt;The   Wheel control layouts&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-backgrounds.html&quot;&gt;The  Wheel control backgrounds&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-scrolling.html&quot;&gt;Scrolling    the wheel control&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Updated: &lt;/b&gt;I&#39;ve posted sources of the Wheel widget to Google code. Please use &lt;a href=&quot;http://code.google.com/p/android-wheel/&quot;&gt;this link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;</description><link>http://android-devblog.blogspot.com/2010/06/wheel-ui-contol-ideas-for-future.html</link><author>noreply@blogger.com (kankan)</author><thr:total>16</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-9115320881266193823</guid><pubDate>Fri, 28 May 2010 13:36:00 +0000</pubDate><atom:updated>2010-10-30T21:54:26.757+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">NumericWheel</category><category domain="http://www.blogger.com/atom/ns#">Scrolling</category><category domain="http://www.blogger.com/atom/ns#">Touch</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><title>Wheel UI contol: Scrolling</title><description>The main feature of the Wheel control is a scrolling (rotation). And I&#39;d like to describe a simple wheel scrolling, without animation.&lt;br /&gt;&lt;br /&gt;The wheel control should be scrolled on touch motion event. So, it needs to override &lt;i&gt;&lt;b&gt;onTouchEvent()&lt;/b&gt;&lt;/i&gt; method to rotate the wheel. Each time it needs to update the wheel according to motion distance that can be calculated as the difference between the last and current Y motion position.&lt;br /&gt;In our case we will update the wheel control by setting the current number. If motion distance is less than zero (the movement from bottom to top) we have to increment it, and decrement otherwise. Note that we have to skip that if the movement is so small (is less than one item height).&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #3f7f59;&quot;&gt;@Override&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;public&lt;/span&gt; boolean onTouchEvent(MotionEvent event) {&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;switch&lt;/span&gt; (event.getAction()) {&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;case&lt;/span&gt; MotionEvent.ACTION_DOWN:&lt;br /&gt;        lastYTouch = event.getY();&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;case&lt;/span&gt; MotionEvent.ACTION_MOVE:&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;float&lt;/span&gt; delta = event.getY() - lastYTouch;&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;int&lt;/span&gt; count = (&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;int&lt;/span&gt;) (visibleItems * delta / getHeight());&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;int&lt;/span&gt; pos = currentValue - count;&lt;br /&gt;        pos = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;Math&lt;/span&gt;.max(pos, minValue);&lt;br /&gt;        pos = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;Math&lt;/span&gt;.min(pos, maxValue);&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (pos != currentValue) {&lt;br /&gt;            lastYTouch = event.getY();&lt;br /&gt;            setValue(pos);&lt;br /&gt;        }&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;break&lt;/span&gt;;&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;case&lt;/span&gt; MotionEvent.ACTION_UP:&lt;br /&gt;        &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;break&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;true&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; Sets current value&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; value the value to set&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;public&lt;/span&gt; void setValue(int value) {&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (value != currentValue &amp;amp;&amp;amp; value &amp;gt;= minValue &amp;amp;&amp;amp; value &amp;lt;= maxValue) {&lt;br /&gt;        itemsLayout = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;        valueLayout = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;        currentValue = value;&lt;br /&gt;        invalidate();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Note that it is just a simple scrolling implementation, and it is not as good as expected. But there is nothing impossible, and I think it can be extended to have the behavior like original iPhone widget.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;See also&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;Introduction  to the Wheel control&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-layouts.html&quot;&gt;The  Wheel control layouts&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-backgrounds.html&quot;&gt;The   Wheel control backgrounds&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/06/wheel-ui-contol-ideas-for-future.html&quot;&gt;Ideas for the future&lt;/a&gt;</description><link>http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-scrolling.html</link><author>noreply@blogger.com (kankan)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-1028881029250798293</guid><pubDate>Thu, 27 May 2010 11:05:00 +0000</pubDate><atom:updated>2010-06-02T11:56:45.115+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Background</category><category domain="http://www.blogger.com/atom/ns#">NumericWheel</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><category domain="http://www.blogger.com/atom/ns#">XML Drawable</category><title>Wheel UI contol: Backgrounds</title><description>The &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;NumericWheel&lt;/a&gt;  widget has a simple design. It contains only text data (described in &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-layouts.html&quot;&gt;previous topic&lt;/a&gt;) and gradient  backgrounds that are described in this post.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Backgrounds&lt;/span&gt;&lt;br /&gt;There are used next backgrounds:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Main widget background&lt;/li&gt;&lt;li&gt;Center (current item) background&lt;/li&gt;&lt;li&gt;Top and bottom shadows&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S_5AGtYO1TI/AAAAAAAADII/pTRTiNbkfqk/s1600/and_wheel_bg.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S_5AGtYO1TI/AAAAAAAADII/pTRTiNbkfqk/s640/and_wheel_bg.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Main Background&lt;/span&gt;&lt;br /&gt;Main background consists of two parts: the gradient bevel and the gradient background.&lt;br /&gt;&lt;a href=&quot;http://android-devblog.blogspot.com/2010/04/creating-backgrounds-its-easy-part-1.html&quot;&gt;It&#39;s easy &lt;/a&gt;to create that, just find necessary colors. Not that the best way it to combine them by using layers that are described &lt;a href=&quot;http://idunnolol.com/android/drawables.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #004a43;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: #004a43;&quot;&gt;xml&lt;/span&gt; &lt;span style=&quot;color: #004a43;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #008c00;&quot;&gt;&quot;1.0&quot;&lt;/span&gt; &lt;span style=&quot;color: #004a43;&quot;&gt;encoding&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span style=&quot;color: #004a43;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;layer-list&lt;/span&gt; &lt;span style=&quot;color: #666616;&quot;&gt;xmlns&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #074726;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #666616;&quot;&gt;http&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: #5555dd;&quot;&gt;schemas.android.com&lt;/span&gt;&lt;span style=&quot;color: #40015a;&quot;&gt;/apk/res/android&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;shape&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:shape&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;rectangle&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;gradient&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:startColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#333&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:centerColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#DDD&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:endColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#333&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:angle&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;90&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #a65700;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;br /&gt;                &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;stroke&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:width&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;1dp&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:color&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#FF333333&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #a65700;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;shape&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;item&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:left&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;4dp&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:right&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;4dp&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:top&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;1dp&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:bottom&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;1dp&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;shape&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:shape&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;rectangle&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;gradient&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:startColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#AAA&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:centerColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#FFF&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:endColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#AAA&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #274796;&quot;&gt;android:angle&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;90&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #a65700;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;shape&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;layer-list&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Just set it as a widget background by calling &lt;i&gt;&lt;b&gt;setBackgroundResource()&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Center background&lt;/span&gt;&lt;br /&gt;Center background is used to mark the current item value and widget label. It is also defined in XML and is a little transparent.&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 160px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #004a43;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: #004a43;&quot;&gt;xml&lt;/span&gt; &lt;span style=&quot;color: #004a43;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #008c00;&quot;&gt;&quot;1.0&quot;&lt;/span&gt; &lt;span style=&quot;color: #004a43;&quot;&gt;encoding&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span style=&quot;color: #004a43;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;shape&lt;/span&gt; &lt;span style=&quot;color: #666616;&quot;&gt;xmlns&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #074726;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #666616;&quot;&gt;http&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: #5555dd;&quot;&gt;schemas.android.com&lt;/span&gt;&lt;span style=&quot;color: #40015a;&quot;&gt;/apk/res/android&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;gradient&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #274796;&quot;&gt;android:startColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#70222222&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #274796;&quot;&gt;android:centerColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#70222222&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #274796;&quot;&gt;android:endColor&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#70EEEEEE&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #274796;&quot;&gt;android:angle&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;90&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #a65700;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;stroke&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:width&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;1dp&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #274796;&quot;&gt;android:color&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;#70333333&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #a65700;&quot;&gt;/&amp;gt;&lt;/span&gt; &lt;br /&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #5f5035;&quot;&gt;shape&lt;/span&gt;&lt;span style=&quot;color: #a65700;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Just draw it on center of our widget:&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 160px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; Draws rect for current value&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; canvas the canvas for drawing&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;private&lt;/span&gt; void drawCenterRect(Canvas canvas) {&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;int&lt;/span&gt; center = getHeight() / 2;&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;int&lt;/span&gt; offset = getHeight() / visibleItems / 2;&lt;br /&gt;    centerDrawable.setBounds(0, center - offset, getWidth(), center + offset);&lt;br /&gt;    centerDrawable.draw(canvas);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Top and bottom shadows&lt;/span&gt;&lt;br /&gt;The main background (see above) does not make widget to look so nice (like the original iPhone widget) because it is not enough dark on top and bottom. So, I decided to draw additional gradient drawable to get shadow effect:&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;/** Top and bottom shadows colors */&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;final&lt;/span&gt; int[] SHADOWS_COLORS = new int[] { 0xFF111111,&lt;br /&gt;        0x00AAAAAA, 0x00AAAAAA };&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; Draws shadows on top and bottom of control&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; canvas the canvas for drawing&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;private&lt;/span&gt; void drawShadows(Canvas canvas) {&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (topShadow == &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;) {&lt;br /&gt;        topShadow = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; GradientDrawable(Orientation.TOP_BOTTOM, SHADOWS_COLORS);&lt;br /&gt;    }&lt;br /&gt;    topShadow.setBounds(0, 0, getWidth(), getHeight() / visibleItems);&lt;br /&gt;    topShadow.draw(canvas);&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (bottomShadow == &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;) {&lt;br /&gt;        bottomShadow = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; GradientDrawable(Orientation.BOTTOM_TOP, SHADOWS_COLORS);&lt;br /&gt;    }&lt;br /&gt;    bottomShadow.setBounds(0, getHeight() - getHeight() / visibleItems,&lt;br /&gt;                getWidth(), getHeight());&lt;br /&gt;    bottomShadow.draw(canvas);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;onDraw()&lt;/span&gt;&lt;br /&gt;So, all drawable are defined, and we can draw the Wheel control. We need to draw text layouts and all defined above drawables excluding the widget background.&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: #3f7f59;&quot;&gt;@Override&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;protected&lt;/span&gt; void onDraw(Canvas canvas) {&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;super&lt;/span&gt;.onDraw(canvas);&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (itemsLayout == &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;) {&lt;br /&gt;        calculateLayoutWidth(getWidth(), MeasureSpec.EXACTLY);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    drawCenterRect(canvas);&lt;br /&gt;&lt;br /&gt;    canvas.save();&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// Skip padding space and hide a part of top and bottom items&lt;/span&gt;&lt;br /&gt;    canvas.translate(PADDING, -ITEM_OFFSET);&lt;br /&gt;    drawItems(canvas);&lt;br /&gt;    drawValue(canvas);&lt;br /&gt;    canvas.restore();&lt;br /&gt;&lt;br /&gt;    drawShadows(canvas);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; Draws value and label layout&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; canvas the canvas for drawing&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;private&lt;/span&gt; void drawValue(Canvas canvas) {&lt;br /&gt;    valuePaint.setColor(VALUE_TEXT_COLOR);&lt;br /&gt;    valuePaint.drawableState = getDrawableState();&lt;br /&gt;&lt;br /&gt;    Rect bounds = &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;new&lt;/span&gt; Rect();&lt;br /&gt;    itemsLayout.getLineBounds(visibleItems / 2, bounds);&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// draw label&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;if&lt;/span&gt; (labelLayout != &lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;null&lt;/span&gt;) {&lt;br /&gt;        canvas.save();&lt;br /&gt;        canvas.translate(itemsLayout.getWidth() + LABEL_OFFSET, bounds.top);&lt;br /&gt;        labelLayout.draw(canvas);&lt;br /&gt;        canvas.restore();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #3f7f59;&quot;&gt;// draw current value&lt;/span&gt;&lt;br /&gt;    canvas.save();&lt;br /&gt;    canvas.translate(0, bounds.top);&lt;br /&gt;    valueLayout.draw(canvas);&lt;br /&gt;    canvas.restore();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; Draws items&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7f9fbf; font-weight: bold;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt; canvas the canvas for drawing&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #3f5fbf;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;private&lt;/span&gt; void drawItems(Canvas canvas) {&lt;br /&gt;    itemsPaint.setColor(ITEMS_TEXT_COLOR);&lt;br /&gt;    itemsPaint.drawableState = getDrawableState();&lt;br /&gt;    itemsLayout.draw(canvas);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;Note that to draw StaticLayout it needs to &quot;move&quot; it to necessary position by using &lt;i&gt;&lt;b&gt;Canvas.translate()&lt;/b&gt;&lt;/i&gt; method.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Notes&lt;/span&gt;&lt;br /&gt;The first part of Wheel UI control implementation has been done.&lt;br /&gt;What is not implemented yet? Of course, rotation - the main behavior of this widget. I&#39;ll describe it in next post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;See also&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;Introduction to the Wheel control&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-layouts.html&quot;&gt;The Wheel control layouts&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-scrolling.html&quot;&gt;Scrolling the wheel control&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/06/wheel-ui-contol-ideas-for-future.html&quot;&gt;Ideas  for the future&lt;/a&gt;</description><link>http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-backgrounds.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6ZWsj8oW5ek/S_5AGtYO1TI/AAAAAAAADII/pTRTiNbkfqk/s72-c/and_wheel_bg.JPG" height="72" width="72"/><thr:total>20</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-7885294019396424538</guid><pubDate>Wed, 26 May 2010 11:36:00 +0000</pubDate><atom:updated>2010-06-02T11:56:17.792+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">NumericWheel</category><category domain="http://www.blogger.com/atom/ns#">StaticLayout</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><title>Wheel UI contol: Layouts</title><description>The &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;NumericWheel&lt;/a&gt; widget has a simple design. It contains only text data and gradient backgrounds. In this post I&#39;d like to write about text layouts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Text layouts&lt;/span&gt;&lt;br /&gt;Widget contains three text fields:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Current value - number on middle area&amp;nbsp; (&quot;11&quot; on image above) &lt;/li&gt;&lt;li&gt;Label - text on right area (&quot;hour&quot; on image above)&lt;/li&gt;&lt;li&gt;Items - all visible numbers excluding current value (&quot;9&quot;, &quot;10&quot;, &quot;12&quot;, &quot;13&quot; on image above)&lt;/li&gt;&lt;/ul&gt;Next picture shows how all these items are &quot;placed&quot; on the widget.&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S_-4NHg6t3I/AAAAAAAADIQ/7-exFkmXEh4/s1600/and_wheel_design.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;288&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S_-4NHg6t3I/AAAAAAAADIQ/7-exFkmXEh4/s640/and_wheel_design.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;About the Control area - it is just a space where defined above items are placed. It is the whole widget area excluding left and right padding. Note that there is also indent between Items and the Label areas.&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;To show text fields there is used the &lt;a href=&quot;http://developer.android.com/intl/zh-CN/reference/android/text/StaticLayout.html&quot;&gt;StaticLayout&lt;/a&gt;  class that does all hard work. It renders text using a lot of settings, such as text paint, text alignment and so on.&lt;br /&gt;Note that the Current value item is excluded from Items field because  there is used another text settings for drawing it - it  is drown with the same settings as the Label field.&lt;br /&gt;&lt;br /&gt;As you can see, design is easy. It needs only to calculate their sizes and the whole widget dimensions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Width&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;Before creating the StaticLayout object we should know its width (further it is possible only to make it more). So it needs to calculate it at first.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 150px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) FloatMath.ceil(Layout.getDesiredWidth(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;getMaxText(), itemsPaint));&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; ADDITIONAL_ITEMS_SPACE; &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; make it some more&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (label &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; label.length() &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: black;&quot;&gt; widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) FloatMath.ceil(Layout.getDesiredWidth(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;label, valuePaint));&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Then it needs to update width according to the widget layout width settings (&lt;i&gt;&lt;b&gt;android:layout_width&lt;/b&gt;&lt;/i&gt;) and, finally, calculate the whole widget width that is the sum of text fields width, left and top padding and indent between text fields. Next code does that.&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 400px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;/**&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;* Calculates control width and creates text layouts&lt;br /&gt;* &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; widthSize the input layout width&lt;br /&gt;* &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; mode the layout mode&lt;br /&gt;* &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;@return&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; the calculated control width&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;*/&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; calculateLayoutWidth(&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthSize, &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; mode) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; initResourcesIfNecessary();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthSize;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) FloatMath.ceil(Layout.getDesiredWidth(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;getMaxText(), itemsPaint));&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; ADDITIONAL_ITEMS_SPACE; &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; make it some more&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (label &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; label.length() &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) FloatMath.ceil(Layout.getDesiredWidth(label, valuePaint));&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;boolean&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; recalculate &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (mode &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.EXACTLY) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthSize;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;recalculate &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; PADDING;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; LABEL_OFFSET;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; Check against our minimum width&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; Math.max(width, getSuggestedMinimumWidth());&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (mode &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.AT_MOST &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthSize &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; width) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthSize;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;recalculate &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; }&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (recalculate) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; recalculate width&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; pureWidth &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; LABEL_OFFSET &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; PADDING;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; newWidthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; pureWidth &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthLabel);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) newWidthItems;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; pureWidth &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;widthItems &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; pureWidth &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; LABEL_OFFSET; &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; no label&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;createLayouts(widthItems, widthLabel);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; width;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;/**&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;* Creates layouts&lt;br /&gt;* &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; widthItems width of items layout&lt;br /&gt;* &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; widthLabel width of label layout&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;*/&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; createLayouts(&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems, &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthLabel) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (itemsLayout &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; itemsLayout.getWidth() &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;itemsLayout &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; StaticLayout(buildText(), itemsPaint, widthItems,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; Layout.Alignment.ALIGN_OPPOSITE :&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Layout.Alignment.ALIGN_CENTER,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;, ADDITIONAL_ITEM_HEIGHT, &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;itemsLayout.increaseWidthTo(widthItems);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (valueLayout &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; valueLayout.getWidth() &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthItems) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;valueLayout &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; StaticLayout(Integer.toString(currentValue),&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;valuePaint, widthItems, widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_CENTER,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;, ADDITIONAL_ITEM_HEIGHT, &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;valueLayout.increaseWidthTo(widthItems);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (widthLabel &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (labelLayout &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; labelLayout.getWidth() &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthLabel) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;labelLayout &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; StaticLayout(label, valuePaint,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;widthLabel, Layout.Alignment.ALIGN_NORMAL, &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;ADDITIONAL_ITEM_HEIGHT, &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;labelLayout.increaseWidthTo(widthLabel);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;As you can see there is not calculated the Current item width. It is because it has the same width as the Items layout that is as long as the longest text that it can contain.&lt;br /&gt;How to build a text for the Items layout? Just create a string that contains five lines (in general, the wheel can have any count of items): the first two are the previous numbers of current value, the last two are the next numbers, and the middle one is empty - at this position there will be shown current value.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Height&lt;/b&gt;&lt;br /&gt;The StaticLayout class allows to get its height, so it is not necessary co calculate that. It needs only to calculate the whole control height.&lt;br /&gt;As you can see the Wheel control height is equal to the Items layout height. Just correct it to show top and bottom items not fully.&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;/**&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;* Calculates desired height for layout&lt;br /&gt;* &lt;br /&gt;* &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;@param&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; layout            the source layout&lt;br /&gt;* &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;@return&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; the desired layout height&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;*/&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; getDesiredHeight(Layout layout) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (layout &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; linecount &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; layout.getLineCount();&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; desired &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; layout.getLineTop(linecount) &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; ITEM_OFFSET &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; ADDITIONAL_ITEM_HEIGHT;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt; Check against our minimum height&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;desired &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; Math.max(desired, getSuggestedMinimumHeight());&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; desired;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;onMeasure&lt;/b&gt;&lt;br /&gt;So, all code for necessary implementation of &lt;i&gt;&lt;b&gt;onMeasure()&lt;/b&gt;&lt;/i&gt; method is written. Just correct height  according to the widget layout height  settings &lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 200px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: green;&quot;&gt;@Override&lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; onMeasure(&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthMeasureSpec, &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; heightMeasureSpec) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthMode &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.getMode(widthMeasureSpec);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; heightMode &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.getMode(heightMeasureSpec);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; widthSize &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.getSize(widthMeasureSpec);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; heightSize &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.getSize(heightMeasureSpec);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; width &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; calculateLayoutWidth(widthSize, widthMode);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; height;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (heightMode &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.EXACTLY) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;height &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; heightSize;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;height &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; getDesiredHeight(itemsLayout);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (heightMode &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; MeasureSpec.AT_MOST) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;height &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; Math.min(height, heightSize);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;setMeasuredDimension(width, height);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;In next post I&#39;ll describe how to create nice backgrounds for the Wheel widget.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;See also&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html&quot;&gt;Introduction  to the Wheel control&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-backgrounds.html&quot;&gt;The  Wheel control backgrounds&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-scrolling.html&quot;&gt;Scrolling  the wheel control&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/06/wheel-ui-contol-ideas-for-future.html&quot;&gt;Ideas  for the future&lt;/a&gt;</description><link>http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-layouts.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6ZWsj8oW5ek/S_-4NHg6t3I/AAAAAAAADIQ/7-exFkmXEh4/s72-c/and_wheel_design.JPG" height="72" width="72"/><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-3246042573795786977</guid><pubDate>Tue, 25 May 2010 10:32:00 +0000</pubDate><atom:updated>2010-11-23T10:42:22.306+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Date time picker</category><category domain="http://www.blogger.com/atom/ns#">NumericWheel</category><category domain="http://www.blogger.com/atom/ns#">Password widget</category><category domain="http://www.blogger.com/atom/ns#">TimePicker</category><category domain="http://www.blogger.com/atom/ns#">Wheel contol</category><title>Wheel UI contol</title><description>Have you ever seen the iPhone date time picker?&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/TOt-Ud4-btI/AAAAAAAADPc/d8NHwCekmpY/s1600/date_time_picker.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/TOt-Ud4-btI/AAAAAAAADPc/d8NHwCekmpY/s1600/date_time_picker.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;Next is the corresponding Android control&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://developer.android.com/intl/zh-CN/guide/tutorials/views/images/hello-timepicker.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://developer.android.com/intl/zh-CN/guide/tutorials/views/images/hello-timepicker.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Poor design...&lt;br /&gt;&lt;br /&gt;But, fortunately, there is an ability to create own UI controls. So I decided to implement this one.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S_uhUzwD72I/AAAAAAAADHo/6Cd42gfYyRc/s1600/and-time.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S_uhUzwD72I/AAAAAAAADHo/6Cd42gfYyRc/s320/and-time.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Actually, this time picker is a sample activity that uses my control called &lt;i&gt;&lt;b&gt;NumericWheel&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;XML Layout:&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 150px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: magenta;&quot;&gt;xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;LinearLayout &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;http://schemas.android.com/apk/res/android&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     android:layout_height&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;wrap_content&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_gravity&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;center_horizontal&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_width&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;fill_parent&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:paddingLeft&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;12dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:paddingRight&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;12dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:paddingTop&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;4dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:background&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;@drawable/layout_bg&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;.android.ui.NumericWheel android:id&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;@+id/hour&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_height&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;wrap_content&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_width&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;fill_parent&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_weight&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;.android.ui.NumericWheel android:id&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;@+id/mins&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_height&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;wrap_content&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_width&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;fill_parent&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:layout_weight&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;LinearLayout&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Activity code:&lt;br /&gt;&lt;div style=&quot;border: 1px solid black; height: 150px; overflow-x: hidden; overflow-y: auto;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; TimeActivity &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;extends&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; Activity {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; onCreate(Bundle savedInstanceState) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;.onCreate(savedInstanceState);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;         setContentView(R.layout.time_layout);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;NumericWheel hours &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (NumericWheel) findViewById(R.id.hour);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;hours.setMaxValue(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;23&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;hours.setCaption(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;hour&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;NumericWheel mins &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; (NumericWheel) findViewById(R.id.mins);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;mins.setMaxValue(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;59&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;mins.setCaption(&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;mins&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Calendar c &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; Calendar.getInstance();&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;mins.setValue(c.get(Calendar.MINUTE));&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;hours.setValue(c.get(Calendar.HOUR_OF_DAY));&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;It is possible also to use the wheel control, for example, to enter PIN code or something like that:&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S_ulB8DPftI/AAAAAAAADHw/76C6PQ4hN1w/s1600/and-passw.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S_ulB8DPftI/AAAAAAAADHw/76C6PQ4hN1w/s320/and-passw.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Here are used four wheel controls.&lt;br /&gt;&lt;br /&gt;It is a very interesting theme, and in next topics I&#39;ll describe functionality of&amp;nbsp; the wheel control and how to implement and improve it&lt;br /&gt;&lt;br /&gt;&lt;b&gt;See also&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-layouts.html&quot;&gt;The  Wheel control layouts&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-backgrounds.html&quot;&gt;The Wheel control backgrounds&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/wheel-ui-contol-scrolling.html&quot;&gt;Scrolling   the wheel control&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://android-devblog.blogspot.com/2010/06/wheel-ui-contol-ideas-for-future.html&quot;&gt;Ideas  for the future&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;</description><link>http://android-devblog.blogspot.com/2010/05/wheel-ui-contol.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6ZWsj8oW5ek/TOt-Ud4-btI/AAAAAAAADPc/d8NHwCekmpY/s72-c/date_time_picker.jpg" height="72" width="72"/><thr:total>100</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-7115347897487656751</guid><pubDate>Tue, 18 May 2010 08:12:00 +0000</pubDate><atom:updated>2010-05-18T11:12:55.233+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Background</category><category domain="http://www.blogger.com/atom/ns#">XML Drawable</category><title>Creating backgrounds: it&#39;s easy (part 3)</title><description>&lt;a href=&quot;http://android-devblog.blogspot.com/2010/05/creating-backgrounds-its-easy-part-2.html&quot;&gt;Here&lt;/a&gt;  is the last topic about creating simple Android backgrounds.&lt;br /&gt;&lt;br /&gt;I had some problems during investigating XML Android drawable because there were missed good docs about that. Definitions in Android API documentation are not full and clear.&lt;br /&gt;&lt;br /&gt;Fortunately, I&#39;ve found a great doc that describes all XML drawable :) &lt;a href=&quot;http://idunnolol.com/android/drawables.html&quot;&gt;Here&lt;/a&gt; it is.&lt;br /&gt;As you can see Android provides a lot of useful things for defining XML drawable: rotating, animating, scaling, uniting a set of drawable etc.</description><link>http://android-devblog.blogspot.com/2010/05/creating-backgrounds-its-easy-part-3.html</link><author>noreply@blogger.com (kankan)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-3415978161156391602</guid><pubDate>Wed, 12 May 2010 13:36:00 +0000</pubDate><atom:updated>2010-05-18T11:05:28.057+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">App widget</category><category domain="http://www.blogger.com/atom/ns#">Background</category><category domain="http://www.blogger.com/atom/ns#">Gradient</category><category domain="http://www.blogger.com/atom/ns#">Layout</category><category domain="http://www.blogger.com/atom/ns#">Shape</category><category domain="http://www.blogger.com/atom/ns#">XML Drawable</category><title>Creating backgrounds: it&#39;s easy (part 2)</title><description>&lt;a href=&quot;http://android-devblog.blogspot.com/2010/04/creating-backgrounds-its-easy-part-1.html&quot;&gt;Here&lt;/a&gt; is the first topic about creating simple Android backgrounds.&lt;br /&gt;&lt;br /&gt;What about gradients?&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S-qt2W3SQrI/AAAAAAAADHI/dgKTyhE3YF0/s1600/and_back.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S-qt2W3SQrI/AAAAAAAADHI/dgKTyhE3YF0/s400/and_back.JPG&quot; width=&quot;270&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;It&#39;s easy - just use &lt;i&gt;&lt;b&gt;gradient &lt;/b&gt;&lt;/i&gt;XML tag:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;http://schemas.android.com/apk/res/android&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;gradient&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:startColor&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;#F000FFFF&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:centerColor&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;#40004444&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:endColor&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;#00000000&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:angle&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;90&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;corners &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:radius&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;8dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://android-devblog.blogspot.com/2010/05/creating-backgrounds-its-easy-part-2.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6ZWsj8oW5ek/S-qt2W3SQrI/AAAAAAAADHI/dgKTyhE3YF0/s72-c/and_back.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-6616682125639654975</guid><pubDate>Fri, 23 Apr 2010 08:44:00 +0000</pubDate><atom:updated>2010-05-18T11:05:45.237+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">App widget</category><category domain="http://www.blogger.com/atom/ns#">Background</category><category domain="http://www.blogger.com/atom/ns#">Layout</category><category domain="http://www.blogger.com/atom/ns#">Shape</category><category domain="http://www.blogger.com/atom/ns#">XML Drawable</category><title>Creating backgrounds: it&#39;s easy (part 1)</title><description>During developing UI applications for Android, you often have to work with images: icons, backgrounds and others. If you need icon, you (or your designer) paint it using some image editor, like PhotoShop. But what should you do when it needs to create just a simple background for your widget? Install an image editor, research that, and then create background? - Too many actions for creating a simple background.&lt;br /&gt;&lt;br /&gt;Android SDK provides a set of easy ways to define backgrounds, and one of them is the &lt;i&gt;&lt;b&gt;shape &lt;/b&gt;&lt;/i&gt;drawable XML element. For instance, here is a rounded green drawable:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;http://schemas.android.com/apk/res/android&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;solid &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:color&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;#FF00FF00&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;corners &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:radius&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;8dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Let create a simple rounded App widget that has an icon and text with a transparent background:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S9FXjqvm4RI/AAAAAAAADFY/YdDGGyL8fl8/s1600/app1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S9FXjqvm4RI/AAAAAAAADFY/YdDGGyL8fl8/s320/app1.JPG&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;It changes own view on selecting and pressing, like a lot of Android widgets (icons on Home, buttons etc.):&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S9FY5NN0iRI/AAAAAAAADFg/9exmfXyauk0/s1600/app1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S9FY5NN0iRI/AAAAAAAADFg/9exmfXyauk0/s320/app1.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;State Selected &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S9FZXmJW00I/AAAAAAAADFo/0jLI5WNYU-E/s1600/app1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S9FZXmJW00I/AAAAAAAADFo/0jLI5WNYU-E/s320/app1.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;State Pressed&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here is the background drawable of App widget:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;selector &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;http://schemas.android.com/apk/res/android&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;item &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:state_window_focused&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;false&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:drawable&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;@drawable/bg_normal&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;item &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:state_pressed&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;true&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:drawable&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;@drawable/bg_pressed&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;item &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:state_focused&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;true&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:drawable&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;@drawable/bg_selected&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;item &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:drawable&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;@drawable/bg_normal&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;selector&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Normal background (&lt;i&gt;bg_normal.xml&lt;/i&gt;) has transparent color and rounded corners:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;http://schemas.android.com/apk/res/android&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;solid &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:color&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;#AA111111&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;padding &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:left&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:top&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         android:right&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:bottom&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;corners &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:radius&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;8dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;Selected (&lt;/span&gt;&lt;i&gt;bg_selected.xml&lt;/i&gt;&lt;span style=&quot;color: black;&quot;&gt;) and Pressed (&lt;/span&gt;&lt;i&gt;bg_pressed.xml&lt;/i&gt;&lt;span style=&quot;color: black;&quot;&gt;) backgrounds extend &lt;/span&gt;Normal background by adding border and changing background color. &lt;span style=&quot;color: black;&quot;&gt;They look alike, just have different border colors (&lt;i&gt;&lt;b&gt;#FFEEC000&lt;/b&gt;&lt;/i&gt; - for pressed, &lt;i&gt;&lt;b&gt;#FFFF8000&lt;/b&gt;&lt;/i&gt; - for selected):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;http://schemas.android.com/apk/res/android&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;solid &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:color&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;#A777&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;padding &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:left&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:top&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         android:right&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:bottom&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;6dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;corners &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:radius&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;8dp&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;stroke &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;android:width&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;4dip&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; android:color&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;#FFFF8000&quot;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;shape&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://android-devblog.blogspot.com/2010/04/creating-backgrounds-its-easy-part-1.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6ZWsj8oW5ek/S9FXjqvm4RI/AAAAAAAADFY/YdDGGyL8fl8/s72-c/app1.JPG" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-4929270469617805979</guid><pubDate>Wed, 14 Apr 2010 12:18:00 +0000</pubDate><atom:updated>2010-04-14T15:19:13.276+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android images</category><category domain="http://www.blogger.com/atom/ns#">HTC</category><title>Android system images (eng)</title><description>HTC provides images of their devices that can be run by the Android emulator.&lt;br /&gt;Just download necessary system image from &lt;a href=&quot;http://developer.htc.com/adp.html&quot;&gt;HTC developer center page&lt;/a&gt;, create a new Android virtual device and put the downloaded image into the created AVD folder. Then start the emulator.&lt;br /&gt;&lt;br /&gt;Next are a few screen shots.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S8WwhmICokI/AAAAAAAADFA/blNH-ncsabE/s1600/and-1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;281&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S8WwhmICokI/AAAAAAAADFA/blNH-ncsabE/s400/and-1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S8Ww6rXrypI/AAAAAAAADFI/cwnsCGzMSfo/s1600/and-1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;283&quot; src=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S8Ww6rXrypI/AAAAAAAADFI/cwnsCGzMSfo/s400/and-1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/S8WyCAWz9XI/AAAAAAAADFQ/pvSlVHgKWys/s1600/and-1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;283&quot; src=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/S8WyCAWz9XI/AAAAAAAADFQ/pvSlVHgKWys/s400/and-1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;After you sign in with a Google account, you have access to all of the market apps right from the emulator.</description><link>http://android-devblog.blogspot.com/2010/04/android-system-images.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6ZWsj8oW5ek/S8WwhmICokI/AAAAAAAADFA/blNH-ncsabE/s72-c/and-1.JPG" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-4899668781144475335</guid><pubDate>Fri, 02 Apr 2010 08:03:00 +0000</pubDate><atom:updated>2010-04-06T11:20:05.677+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android SDK</category><category domain="http://www.blogger.com/atom/ns#">ListView</category><category domain="http://www.blogger.com/atom/ns#">Resources</category><title>Android resources (eng)</title><description>Do you know Android SDK contains all resources used by standard widgets? Icons, animations, styles and so on.&lt;br /&gt;They are placed on the &lt;b&gt;&lt;i&gt;&amp;lt;Android  SDK   folder&amp;gt;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;/data/res&lt;/i&gt;&lt;/b&gt; folder. And it is possible to use them directly, so it is not necessary to add them into project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For example, here is a checked list view that uses starts instead of &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span style=&quot;background-color: white;&quot; title=&quot;привычный&quot;&gt;habitual marks:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S7WbtOO9vpI/AAAAAAAADE4/qq-_1lmb5xU/s1600/and_start.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S7WbtOO9vpI/AAAAAAAADE4/qq-_1lmb5xU/s320/and_start.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;To do that just do next:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Define list view item layout (let call it star_checked_item). You can use standard layout for &lt;i&gt;android.R.layout.simple_list_item_checked&lt;/i&gt; - &lt;i&gt;&lt;b&gt;layouts/simple_list_item_checked.xml&lt;/b&gt;&lt;/i&gt; file. &lt;/li&gt;&lt;/ul&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;CheckedTextView &lt;/span&gt;   &lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;=&quot;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;http://schemas.android.com/apk/res/android&lt;/span&gt;&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;   &lt;span style=&quot;color: #990000;&quot;&gt;android:id&lt;/span&gt;=&quot;&lt;b&gt;@+android:id/text1&lt;/b&gt;&quot;   &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_width&lt;/span&gt;=&quot;&lt;b&gt;fill_parent&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;   &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_height&lt;/span&gt;=&quot;&lt;b&gt;?android:attr/listPreferredItemHeight&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:textAppearance&lt;/span&gt;=&quot;&lt;b&gt;?android:attr/textAppearanceLarge&lt;/b&gt;&quot;  &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:gravity&lt;/span&gt;=&quot;&lt;b&gt;center_vertical&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:checkMark&lt;/span&gt;=&quot;&lt;b&gt;@android:drawable/btn_star&lt;/b&gt;&quot;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #990000; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;!-- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #990000; font-size: small;&quot;&gt;Mark style&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt; --&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #990000; font-size: small;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:paddingLeft&lt;/span&gt;=&quot;&lt;b&gt;6dip&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:paddingRight&lt;/span&gt;=&quot;&lt;b&gt;6dip&lt;/b&gt;&quot;&lt;span style=&quot;color: #990000;&quot;&gt;/&amp;gt;&lt;/span&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;Use this layout in list view adapter&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayAdapter&lt;string&gt;  adapter = &lt;/string&gt;&lt;b&gt;new&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; ArrayAdapter&lt;string&gt;(&lt;/string&gt;&lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;this&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;,  R.layout.star_checked_item);&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list.setAdapter(adapter);&lt;/span&gt;</description><link>http://android-devblog.blogspot.com/2010/04/android-resources-eng.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6ZWsj8oW5ek/S7WbtOO9vpI/AAAAAAAADE4/qq-_1lmb5xU/s72-c/and_start.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-5389210010928181826</guid><pubDate>Fri, 02 Apr 2010 08:03:00 +0000</pubDate><atom:updated>2010-04-02T11:04:45.172+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android SDK</category><category domain="http://www.blogger.com/atom/ns#">ListView</category><category domain="http://www.blogger.com/atom/ns#">Resources</category><title>Android resources</title><description>Знаете ли вы, что Android SDK содержит ресурсы, которые используются стандартными контролами? Это иконки, анимации, стили, лайауты и пр.&lt;br /&gt;Все они находится в папке&amp;nbsp;&lt;b&gt;&lt;i&gt;&amp;lt;Android SDK   folder&amp;gt;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;/data/res&lt;/i&gt;&lt;/b&gt;. При этом, к ним можно обращаться напрямую, то есть нет необходимости добавлять их в свой проект.&lt;br /&gt;&lt;br /&gt;Вот, например, приложение, которое представляет собой checked list view, только использует звездочки вместо привычных галочек для своих элементов:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S7WbtOO9vpI/AAAAAAAADE4/qq-_1lmb5xU/s1600/and_start.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/_6ZWsj8oW5ek/S7WbtOO9vpI/AAAAAAAADE4/qq-_1lmb5xU/s320/and_start.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Все, что надо для этого - это:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Определить лайаут для элеметов списка (назовем его star_checked_item) Можно использовать как шаблон лайаут для &lt;i&gt;android.R.layout.simple_list_item_checked&lt;/i&gt; - файл &lt;i&gt;&lt;b&gt;layouts/simple_list_item_checked.xml&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;CheckedTextView &lt;/span&gt;   &lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;=&quot;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;http://schemas.android.com/apk/res/android&lt;/span&gt;&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;   &lt;span style=&quot;color: #990000;&quot;&gt;android:id&lt;/span&gt;=&quot;&lt;b&gt;@+android:id/text1&lt;/b&gt;&quot;   &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_width&lt;/span&gt;=&quot;&lt;b&gt;fill_parent&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;   &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_height&lt;/span&gt;=&quot;&lt;b&gt;?android:attr/listPreferredItemHeight&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:textAppearance&lt;/span&gt;=&quot;&lt;b&gt;?android:attr/textAppearanceLarge&lt;/b&gt;&quot; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:gravity&lt;/span&gt;=&quot;&lt;b&gt;center_vertical&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:checkMark&lt;/span&gt;=&quot;&lt;b&gt;@android:drawable/btn_star&lt;/b&gt;&quot;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #990000; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;!--&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #990000; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;Стиль метки&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt; --&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #990000; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:paddingLeft&lt;/span&gt;=&quot;&lt;b&gt;6dip&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:paddingRight&lt;/span&gt;=&quot;&lt;b&gt;6dip&lt;/b&gt;&quot;&lt;span style=&quot;color: #990000;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;Использовать этот лайаут в адаптере&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayAdapter&lt;string&gt; adapter = &lt;/string&gt;&lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;new&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; ArrayAdapter&lt;string&gt;(&lt;/string&gt;&lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;this&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;, R.layout.star_checked_item);&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list.setAdapter(adapter);&lt;/span&gt;&lt;/span&gt;</description><link>http://android-devblog.blogspot.com/2010/04/android-resources.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6ZWsj8oW5ek/S7WbtOO9vpI/AAAAAAAADE4/qq-_1lmb5xU/s72-c/and_start.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-8077874906307276511</guid><pubDate>Wed, 24 Mar 2010 09:33:00 +0000</pubDate><atom:updated>2010-04-02T10:27:34.733+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">IconMenuView</category><category domain="http://www.blogger.com/atom/ns#">Menu</category><title>Android Options menu: Internals (eng)</title><description>Android applications (Activities) can have own menus next types:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Options menu - the main menu of application, is displayed when user clicks Menu button&lt;/li&gt;&lt;li&gt;Сontext menu - the context menu, is shown when user makes long click on some control &lt;/li&gt;&lt;/ul&gt;Сontext menu looks like a simple List view dialog and there is a possibility to change its view by using Android themes. I have been investigated an ability to manage the Options menu view and would like to share results in this post.&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;A typical Android menu looks like next:&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S6NY6FeuXLI/AAAAAAAADEw/enVEBBVMl7A/s1600-h/android_menu.JPG&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5450297728975133874&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S6NY6FeuXLI/AAAAAAAADEw/enVEBBVMl7A/s320/android_menu.JPG&quot; style=&quot;cursor: pointer; height: 320px; width: 213px;&quot; /&gt;&lt;/a&gt;     &lt;a href=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/S6NYfXCgyfI/AAAAAAAADEo/Vnj5tWdb-T8/s1600-h/android_menu2.JPG&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5450297269832174066&quot; src=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/S6NYfXCgyfI/AAAAAAAADEo/Vnj5tWdb-T8/s320/android_menu2.JPG&quot; style=&quot;height: 320px; width: 215px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;It can have icon and caption, it is possible to use sub-menus that looks like the Android Context menu.&lt;br /&gt;There are some constraints for menus:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There is displayed not more than 6 menu items меню, three per row. If menu items are more than 6 they are collected into the &quot;More&quot; sub-menu.&lt;/li&gt;&lt;li&gt;There are supported only a one level sub-menus, so it is not possible to create a sub-menu for sub-menu item..&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;&amp;nbsp;Implementation&lt;/span&gt;&lt;br /&gt;Options menu is realized by Android &lt;i&gt;Menu &lt;/i&gt;class  which object is passed into &lt;i&gt;Activity.onCreateOptionsMenu()&lt;/i&gt; that is called at once, when Application creates menu.&lt;br /&gt;&lt;br /&gt;This interface allow to work only with menu structure and does not provide methods to manage menu view. But it would like to set menu background, items count per row, menu sizes, - in general, make menu more &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span style=&quot;background-color: white;&quot; title=&quot;привлекательны&quot;&gt;attractive.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;Internal classes&lt;/span&gt;&lt;br /&gt;Android draws menu by using the &lt;i&gt;com.android.internal.view.menu&lt;/i&gt; package that contains next interesting classes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;IconMenuView &lt;/i&gt;- menu view class&lt;/li&gt;&lt;li&gt;&lt;i&gt;IconMenuItemView &lt;/i&gt;- menu item view class&lt;/li&gt;&lt;li&gt;&lt;i&gt;MenuBuilder &lt;/i&gt;- implements the &lt;i&gt;Menu &lt;/i&gt;interface and creates (builds) &lt;i&gt;IconMenuView&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;MenuItemImpl &lt;/i&gt;- implements the &lt;i&gt;MenuItem &lt;/i&gt;interface and creates a view for it&lt;/li&gt;&lt;/ul&gt;We are interested by only &lt;b&gt;&lt;i&gt;IconMenuView&lt;/i&gt;&lt;/b&gt; class which creates view for Android menu.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;IconMenuView &lt;/span&gt;&lt;br /&gt;The &lt;i&gt;IconMenuView &lt;/i&gt; class has next properties:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;rowHeight&lt;/b&gt;&lt;i&gt; - the height of a single menu row&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;maxRows - &lt;/b&gt;&lt;i&gt;the maximum &lt;/i&gt;&lt;i&gt;quantity of &lt;/i&gt;&lt;i&gt;menu rows&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;maxItemsPerRow&lt;/b&gt; &lt;b&gt;- &lt;/b&gt;&lt;i&gt;the maximum &lt;/i&gt;&lt;i&gt;quantity of &lt;/i&gt;&lt;i&gt;menu items &lt;/i&gt;&lt;i&gt;per row&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;maxItems &lt;/b&gt;&lt;b&gt;- &lt;/b&gt;&lt;i&gt;the maximum &lt;/i&gt;&lt;i&gt;quantity of &lt;/i&gt;&lt;i&gt;visible menu items&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;moreIcon&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;i&gt;- icon for grouped hidden menu items&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;Next properties are delivered from &lt;i&gt;MenuView&lt;/i&gt;: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;horizontalDivider &lt;/b&gt;&lt;i&gt;- horizontal divider&lt;/i&gt; (drawable)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;verticalDivider&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;  &lt;/b&gt;&lt;i&gt;- vertical divider&lt;/i&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;(drawable)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;itemBackground &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;i&gt;- menu background &lt;/i&gt;(drawable)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;windowAnimationStyle&lt;/b&gt;&lt;i&gt;  - animation style&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;All of them are defined in &lt;b&gt;&lt;i&gt;&amp;lt;Android SDK   folder&amp;gt;/data/res/values/attrs.xml&lt;/i&gt;&lt;/b&gt;, and their identifiers are defined in &lt;b&gt;&lt;i&gt;&amp;lt;Android  SDK  folder&amp;gt;/res/values/public.xml&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Next is an example of menu definition (&lt;b&gt;&lt;i&gt;&amp;lt;Android SDK   folder&amp;gt;/data/res/layout-land/icon_menu_layout.xml&lt;/i&gt;&lt;/b&gt;):&lt;br /&gt;&amp;nbsp;&lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;com.android.internal.view.menu.IconMenuView&lt;/span&gt;  &lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;=&quot;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;http://schemas.android.com/apk/res/android&lt;/span&gt;&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style=&quot;color: #990000;&quot;&gt;android:id&lt;/span&gt;=&quot;&lt;b&gt;@+android:id/icon_menu&lt;/b&gt;&quot;  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_width&lt;/span&gt;=&quot;&lt;b&gt;fill_parent&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_height&lt;/span&gt;=&quot;&lt;b&gt;wrap_content&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style=&quot;color: #990000;&quot;&gt;android:rowHeight&lt;/span&gt;=&quot;&lt;b&gt;65dip&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style=&quot;color: #990000;&quot;&gt;android:maxItems&lt;/span&gt;=&quot;&lt;b&gt;6&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:maxRows&lt;/span&gt;=&quot;&lt;b&gt;2&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:maxItemsPerRow&lt;/span&gt;=&quot;&lt;b&gt;6&lt;/b&gt;&quot; &lt;span style=&quot;color: #990000;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;Managing menu view&lt;/span&gt;&lt;br /&gt;As you can see, the is an ability to tune the Android menu. But not all so simple...&lt;br /&gt;The problem is that &lt;i&gt;com.android.internal.*&lt;/i&gt;&amp;nbsp; are the internal system packages and it is not convenient to use them because they can be modified at any time by Android team. For example, there is described in Android docs that the &lt;i&gt;PhoneWindow&lt;/i&gt; class (implements the &lt;i&gt;Window&lt;/i&gt; interface) will be refactored in the future).&lt;br /&gt;&lt;br /&gt;But I decided to look at next ways (each next of them was invented after the previous one had been failed):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Create a theme, set necessary properties and apply it for Activity.&lt;/i&gt; Unfortunately, there is no way to use &lt;i&gt;IconMenuView&lt;/i&gt; properties in theme definition&lt;/li&gt;&lt;li&gt;&lt;i&gt;Set properties directly to &lt;/i&gt;&lt;i&gt;IconMenuView class.&lt;/i&gt; In general, it is possible to set some properties, for example background, for each menu item by using standard Android interfaces, but not more - the &lt;i&gt;IconMenuView &lt;/i&gt;class does not have set- methods, so it is not possible to set any defined above properties&lt;/li&gt;&lt;li&gt;&lt;i&gt;Redefine menu settings in resources.&lt;/i&gt; Unfortunately, it is not possible to edit resources on run-time&lt;/li&gt;&lt;li&gt;&lt;i&gt; &quot;Hack&quot; resources&lt;/i&gt;&lt;i&gt; - implement own resources/themes/etc classes.&lt;/i&gt; Unfortunately, all necessary Android methods and classes are final.&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;Conclusion&lt;/span&gt;&lt;br /&gt;Unfortunately, it is impossible to change standard menu settings. All defined above properties can be used only by internal classes, so only Android team is able to use them.&lt;br /&gt;&lt;br /&gt;So, there is only a one solution - create own Options menu and show it when used clicks on Menu button, and hide system menu.</description><link>http://android-devblog.blogspot.com/2010/03/android-options-menu-internals-eng.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6ZWsj8oW5ek/S6NY6FeuXLI/AAAAAAAADEw/enVEBBVMl7A/s72-c/android_menu.JPG" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-3470947145198295876</guid><pubDate>Wed, 24 Mar 2010 09:19:00 +0000</pubDate><atom:updated>2010-04-02T10:27:59.937+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">IconMenuView</category><category domain="http://www.blogger.com/atom/ns#">Menu</category><title>Android Options menu: Internals</title><description>Как и во всех платвормах, приложения (Activity) на Андроиде могут иметь свои собственные меню двух видов:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Options menu - главное меню программы, появляется при нажатии клавиши Menu.&lt;/li&gt;&lt;li&gt;Сontext menu - контекстное меню, появляется при длительном нажатии на каком-либо элементе управления.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Сontext menu представляет собой обычный List view диалог и есть возможность менять его вид, используя темы. Я исследовал возможность управление видом Options menu и хочу поделиться в этом посте полученными результатами.&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Типичное меню Андроида выглядит так:&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S6NY6FeuXLI/AAAAAAAADEw/enVEBBVMl7A/s1600-h/android_menu.JPG&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5450297728975133874&quot; src=&quot;http://4.bp.blogspot.com/_6ZWsj8oW5ek/S6NY6FeuXLI/AAAAAAAADEw/enVEBBVMl7A/s320/android_menu.JPG&quot; style=&quot;cursor: pointer; height: 320px; width: 213px;&quot; /&gt;&lt;/a&gt;    &lt;a href=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/S6NYfXCgyfI/AAAAAAAADEo/Vnj5tWdb-T8/s1600-h/android_menu2.JPG&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5450297269832174066&quot; src=&quot;http://3.bp.blogspot.com/_6ZWsj8oW5ek/S6NYfXCgyfI/AAAAAAAADEo/Vnj5tWdb-T8/s320/android_menu2.JPG&quot; style=&quot;cursor: pointer; height: 320px; width: 215px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Меню может иметь иконку и надпись, также есть возможность использовать подменю, которые имеют тот же вид что и контекстные меню. Есть некоторые ограничения:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Андроид показывает максимум 6 элементов в меню, по 3 на строку. Если их больше, то они группируются в подменю More.&lt;/li&gt;&lt;li&gt;Подменю имеют только один уровень, то есть нельзя создать подменю у подменю.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;Реализация&lt;/span&gt;&lt;br /&gt;Options menu представляется в Андроиде интерфесом &lt;i&gt;Menu&lt;/i&gt;, обьект которого передается в &lt;i&gt;Activity.onCreateOptionsMenu()&lt;/i&gt; , который вызывается один раз, когда надо создать меню.&lt;br /&gt;&lt;br /&gt;Этот интерфейс предоставляет возможность работать только со структурой меню, самим видом управлять нельзя. Но хотелось бы задать задний фон, количество элементов в строке, размеры меню, - в общем, сделать его более привлекательным.&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;Внутренние классы&lt;/span&gt;&lt;br /&gt;Система сама рисует меню, используя пакет  &lt;i&gt;com.android.internal.view.menu&lt;/i&gt;, который содержит следующие интересные классы:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;IconMenuView &lt;/i&gt;- класс представления меню&lt;/li&gt;&lt;li&gt;&lt;i&gt;IconMenuItemView &lt;/i&gt;- класс представления пункта меню&lt;/li&gt;&lt;li&gt;&lt;i&gt;MenuBuilder &lt;/i&gt;- реализует интерфейс &lt;i&gt;Menu &lt;/i&gt;и создает (строит) &lt;i&gt;IconMenuView&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;MenuItemImpl &lt;/i&gt;- реализует интерфейс &lt;i&gt;MenuItem &lt;/i&gt;(пункт меню) и создает его представление&lt;/li&gt;&lt;/ul&gt;В принципе, нам интересен только &lt;b&gt;&lt;i&gt;IconMenuView &lt;/i&gt; &lt;/b&gt;класс, который формирует вид меню.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;IconMenuView &lt;/span&gt;&lt;br /&gt;Клас &lt;i&gt;IconMenuView &lt;/i&gt;имеет такие свойства:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;rowHeight&lt;/b&gt;&lt;i&gt; - высота одной строки меню&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;maxRows - &lt;/b&gt;&lt;i&gt;максимальное количество строк&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;maxItemsPerRow&lt;/b&gt; &lt;b&gt;- &lt;/b&gt;&lt;i&gt;максимальное количество &lt;/i&gt;&lt;i&gt;элементов &lt;/i&gt;&lt;i&gt;на строку&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;maxItems &lt;/b&gt;&lt;b&gt;- &lt;/b&gt;&lt;i&gt;максимальное количество видимых &lt;/i&gt;&lt;i&gt;элементов&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;moreIcon&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;i&gt;- иконка&lt;/i&gt;&lt;i&gt; для сгруппированных элементов&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;Следующие свойства унаследованы от &lt;i&gt;MenuView&lt;/i&gt;: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;horizontalDivider &lt;/b&gt;&lt;i&gt;- гори&lt;/i&gt;&lt;i&gt;зонтальный разделитель&lt;/i&gt; (drawable)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;verticalDivider&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;  &lt;/b&gt;&lt;i&gt;- вертикальный&lt;/i&gt;&lt;i&gt; разделитель &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;(drawable)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;itemBackground &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;i&gt;- задний фон меню &lt;/i&gt;(drawable)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;windowAnimationStyle&lt;/b&gt;&lt;i&gt; - стиль анимации&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Все они описанные в файле &lt;b&gt;&lt;i&gt;&amp;lt;Android SDK  folder&amp;gt;/data/res/values/attrs.xml&lt;/i&gt;&lt;/b&gt;, их идентификаторы - в &lt;b&gt;&lt;i&gt;&amp;lt;Android SDK  folder&amp;gt;/res/values/public.xml&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Вот пример описания меню (файл &lt;b&gt;&lt;i&gt;&amp;lt;Android SDK  folder&amp;gt;/data/res/layout-land/icon_menu_layout.xml&lt;/i&gt;&lt;/b&gt;):&lt;br /&gt;&amp;nbsp;&lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;com.android.internal.view.menu.IconMenuView&lt;/span&gt; &lt;span style=&quot;color: red;&quot;&gt;xmlns:android&lt;/span&gt;=&quot;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;http://schemas.android.com/apk/res/android&lt;/span&gt;&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:id&lt;/span&gt;=&quot;&lt;b&gt;@+android:id/icon_menu&lt;/b&gt;&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_width&lt;/span&gt;=&quot;&lt;b&gt;fill_parent&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:layout_height&lt;/span&gt;=&quot;&lt;b&gt;wrap_content&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:rowHeight&lt;/span&gt;=&quot;&lt;b&gt;65dip&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:maxItems&lt;/span&gt;=&quot;&lt;b&gt;6&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:maxRows&lt;/span&gt;=&quot;&lt;b&gt;2&lt;/b&gt;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;android:maxItemsPerRow&lt;/span&gt;=&quot;&lt;b&gt;6&lt;/b&gt;&quot; &lt;span style=&quot;color: #990000;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;Настраивание меню&lt;/span&gt;&lt;br /&gt;Как видно, предусмотрена возможность настраивать меню. Но не все так просто...&lt;br /&gt;Беда в том, что &lt;i&gt;com.android.internal.*&lt;/i&gt; - служебные пакеты, и использовать их  не стоит, поскольку в любой момент могут быть изменены командой  Андроида. Например в документации прямо написано, что класс &lt;i&gt;PhoneWindow &lt;/i&gt;(реализует интерфейс &lt;i&gt;Window&lt;/i&gt;)&lt;i&gt; &lt;/i&gt;в  дальнейшем будет отрефакторен.&lt;br /&gt;&lt;br /&gt;И все же, я решил просмотреть такие варианты, каждый следующий из которых возникал при неудаче предыдущего:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Создать тему, задать необходимые параметры для меню, и применить ее к Activity.&lt;/i&gt; К сожаленью, нет возможности достучаться к свойствам &lt;i&gt;IconMenuView&lt;/i&gt; в описании темы.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Задать параметры непосредственно &lt;/i&gt;&lt;i&gt;IconMenuView. &lt;/i&gt;В принципе, можно задать некоторые свойства, например задний фон для каждого элемента меню, используя стандартные интерфейсы и классы Андроида, но не более - &lt;i&gt;IconMenuView &lt;/i&gt;не имеет сеттеров, поэтому установить, например, максимальное количество строк не получиться&lt;/li&gt;&lt;li&gt;&lt;i&gt;Переопределить параметры меню в ресурсах.&lt;/i&gt; К сожалению,нет возможности править ресурсы во время выполнения&lt;/li&gt;&lt;li&gt;&lt;i&gt; &quot;Хакнуть&quot; ресурсы&lt;/i&gt;&lt;i&gt; - реализовать свои классы ресурсов/тем/пр.&lt;/i&gt; Такой возможности тоже нет - либо все необходимые классы финальные, либо необходимые методы финальные.&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size: large; font-style: italic; font-weight: bold;&quot;&gt;Выводы&lt;/span&gt;&lt;br /&gt;К сожаленью, как не крути, изменить стандартные свойства меню нельзя. Все перечисленные выше свойста могут использоваться только служебными классами, то есть что-то менять под силу только разработчикам из команды Андроида.&lt;br /&gt;&lt;br /&gt;Поэтому здесь существует только одно решение - создать свое собственное меню и показывать его когда пользователь кликает на кнопку Меню, при этом надо прятать стандартное меню.&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;</description><link>http://android-devblog.blogspot.com/2010/03/android-options-menu-internals.html</link><author>noreply@blogger.com (kankan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6ZWsj8oW5ek/S6NY6FeuXLI/AAAAAAAADEw/enVEBBVMl7A/s72-c/android_menu.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7308443968697740398.post-1911584013793343919</guid><pubDate>Tue, 16 Mar 2010 11:38:00 +0000</pubDate><atom:updated>2010-04-02T10:28:22.262+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android SDK</category><title>Android SDK: first impression (eng)</title><description>I have started learning the Android SDK.  And I&#39;d like to share my impressions about this technology that is new for me.&lt;br /&gt;&lt;br /&gt;So, what I liked:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There is used the Java programming language,&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span style=&quot;background-color: #ebeff9;&quot; title=&quot;хотя&quot;&gt; although&lt;/span&gt;&lt;/span&gt; Android does not support established Java standards (SE or ME) - it just uses Java syntax and provides a lot of Java standards classes (streams, threads, collections etc)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span style=&quot;background-color: #ebeff9;&quot; title=&quot;Привычная среда разработки&quot;&gt;The familiar  development environment &lt;/span&gt;&lt;/span&gt;(eclipse) with Android plug-in (ADT) that does all routine work automatically. For example, it automatically generates classes from defined .aidl files. There are also built-in widgets (layout) editor, manifest file editor that allows editing it as raw XML data as by clicking to necessary buttons :)&lt;/li&gt;&lt;li&gt;Simple, clear for understanding documentation. To start developing something for Android it is enough to read the &quot;Android fundamentals&quot; article on developer.android.com.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;There are supported all famous platforms: Windows, Linux, Mac OS X. For example, In iPhone I don&#39;t like the necessity for developing only on Mac OS.&lt;/li&gt;&lt;li&gt;Good Virtual devise with an ability to&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span style=&quot;background-color: #ebeff9;&quot; title=&quot;настраивать&quot;&gt; customize&lt;/span&gt;&lt;/span&gt; device features. There is a set of SDK tools to monitor/control the device - it is possible to view info about each running process,  cause Garbage collector etc.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;What I didn&#39;t like:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The virtual device is starting too slow. For example, iPhone emulator starts &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span style=&quot;background-color: #ebeff9;&quot; title=&quot;мгновенно&quot;&gt;immediately&lt;/span&gt;&lt;/span&gt; with already loaded operation system. Like the &quot;true&quot; device, the Android starts with black screen of terminal :) The good news is that it is enough to start device at once and after work with it, eclipse connects automatically to this device each time. But not skilled developers often close virtual device window and each time have to wait until it starts :)&lt;/li&gt;&lt;li&gt;Virtual device works slowly sometimes&lt;/li&gt;&lt;li&gt;Sometimes eclipse  don&#39;t allow to debug application, and it needs to restart it.&lt;/li&gt;&lt;/ul&gt;In general, developing for Android is an interesting and very&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span style=&quot;background-color: #ebeff9;&quot; title=&quot;перспективная&quot;&gt; promising&lt;/span&gt;&lt;/span&gt; direction.</description><link>http://android-devblog.blogspot.com/2010/03/android-sdk-first-impression-eng.html</link><author>noreply@blogger.com (kankan)</author><thr:total>0</thr:total></item></channel></rss>