tag:blogger.com,1999:blog-61161724849487415642024-03-05T07:11:44.643+03:00Android Blog by SnowpardBlog by Snowpard: reviews developed games, articles on the development and publishing of games and applications for the Android platformSnowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.comBlogger39125tag:blogger.com,1999:blog-6116172484948741564.post-80354949681112126632017-11-03T15:15:00.000+03:002017-11-03T15:15:27.465+03:00Displaying SVG image in Android application<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-eOWn6F-feo8/WfxatfvnuYI/AAAAAAAABnU/ufKdBu7dtf45IkBAK6mioAXHN4zUS40SACLcBGAs/s1600/article_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="100" data-original-width="100" src="https://4.bp.blogspot.com/-eOWn6F-feo8/WfxatfvnuYI/AAAAAAAABnU/ufKdBu7dtf45IkBAK6mioAXHN4zUS40SACLcBGAs/s1600/article_2.png" /></a></div>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SVG - a markup language for scalable vector graphics, is intended for describing two-dimensional vector graphics in XML format.</span><span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. In this article, we will display a SVG image on the ImageView.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div>
<a name='more'></a><br />
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This format has many advantages (you can read in the Wiki(https://ru.wikipedia.org/wiki/SVG)). But using SVG in your project, you will see that: </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">- Now the development time of the application has decreased, since it is not necessary to cut a large number of images for different resolutions (at least for five: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi). </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">- In addition, the weight of the application is significantly reduced. For example, my application Snowy: Weight control weighs only 3.3 MB, and contains more than 50 different icons and images.</span><br />
<br />
<h2>
<span style="font-size: small;">How to prepare SVG images for an Android project?</span></h2>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">You can either draw vector images in a graphics editor that supports SVG (for example, Sketch), or download suitable icons. But, in order to use SVG in Android, the file must be converted to VectorDrawable.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To do this, you can use the following service: </span><a href="http://inloop.github.io/svg2android/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">http://inloop.github.io/svg2android/</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IMPORTANT: If you use complex shapes, rotations, flips, then when converting, you must tick "Bake transforms into path (experimental)"</span><br />
<br />
<h2>
<span style="font-size: small;">How to work with SVG on Android?</span></h2>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1. All the converted xml images are placed in the folder res/drawable.</span></div>
<span id="docs-internal-guid-6425919b-81bf-e70b-ed56-c77041c5b93a"></span><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2. In gradle make the following changes:</span></div>
<pre class="brush: java">android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
dependencies {
compile 'com.android.support:appcompat-v7:27.0.0'
}
</pre>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "roboto"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">VectorDrawable support is available in the Android Support Library 23.2 and above, it is better to use the latest available version of the library (at the time of writing - 27.0.0)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "roboto"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMrosWGyVkvS-600kiHmtVGbSjuPqFrrTyd9pjbUpYmaIijcaBGXIprZemNAu4lV7K-ZynjDbH35qxBcVGu9NytQjrB986_b3Zg8s0BQN1ujqTIgKUCzJ5jlvre8SsrUsalbMSmdxiBwth/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA+%25D1%258D%25D0%25BA%25D1%2580%25D0%25B0%25D0%25BD%25D0%25B0+2017-10-31+%25D0%25B2+21.17.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="56" data-original-width="317" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMrosWGyVkvS-600kiHmtVGbSjuPqFrrTyd9pjbUpYmaIijcaBGXIprZemNAu4lV7K-ZynjDbH35qxBcVGu9NytQjrB986_b3Zg8s0BQN1ujqTIgKUCzJ5jlvre8SsrUsalbMSmdxiBwth/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA+%25D1%258D%25D0%25BA%25D1%2580%25D0%25B0%25D0%25BD%25D0%25B0+2017-10-31+%25D0%25B2+21.17.39.png" /></a></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3. Now just display our drawable in android.support.v7.widget.AppCompatImageView (instead of ImageView), without forgetting to add in the root of the layout: xmlns:app="http://schemas.android.com/apk/res-auto":</span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span style="color: #0b5394;"><android.support.v7.widget.AppCompatImageView</span><br /><span style="color: blue;"> xmlns:app=</span><span style="color: #38761d;">"http://schemas.android.com/apk/res-auto"</span></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span style="color: blue;"> android:layout_width=</span><span style="color: #38761d;">"wrap_content"</span></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-family: Arial, Helvetica, sans-serif;"><span style="color: blue;"> android:layout_height=</span><span style="color: #38761d;">"wrap_content"</span></b></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-family: Arial, Helvetica, sans-serif;"><span style="color: blue;"> app:srcCompat=</span><span style="color: #38761d;">"@drawable/ic_new_releases_24px"</span><span style="color: #0b5394;">/></span></b></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
You can change the color of the image using the tint property:</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<b style="text-align: center;"><span style="color: blue; font-family: "arial" , "helvetica" , sans-serif;"> app:tint=</span><span style="color: #38761d; font-family: "arial" , "helvetica" , sans-serif;">"@color/colorPrimary"</span></b></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; white-space: pre-wrap;"><br /></span></div>
<hr />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; white-space: pre-wrap;">All described successfully implemented in my application </span><a href="https://play.google.com/store/apps/details?id=org.snowpard.weightanalyzer" style="font-family: arial; font-size: 10.5pt; white-space: pre-wrap;" target="_blank">Snowy: Weight Control</a><span style="background-color: white; color: #222222; font-family: "arial"; font-size: 10.5pt; white-space: pre-wrap;">. If it's not difficult for you, support the project with a good review and a positive rate! Thank you!</span></div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-36917763666426060142017-11-02T13:00:00.003+03:002017-11-02T13:00:41.785+03:00Snowy: Weight control<a href="https://2.bp.blogspot.com/-PS0svHywlQo/WfrrTXDZ-kI/AAAAAAAABmM/E2xy4HsFQeUcVq1xrnwLJHdSKsD8Oe7gQCLcBGAs/s1600/article_3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="100" data-original-width="100" src="https://2.bp.blogspot.com/-PS0svHywlQo/WfrrTXDZ-kI/AAAAAAAABmM/E2xy4HsFQeUcVq1xrnwLJHdSKsD8Oe7gQCLcBGAs/s1600/article_3.png" /></a>Snowy: Weight control - the convenient weight diary for your body control!<br />
<br />
<br />
<br />
<br />
<a name='more'></a><br />
<br />
Tired of writing down measurements in a notebook and now looking for the convenient tool for weight control? Our project is a fine decision as the weight diary!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh97Yc3TVp_UbELwY18_OwpLawPTYyeNwkTUwiCJc_VvfnSUI5rQaVyActZYkRCN0XMSTC1KP4YU1iWn8lT10wzxiZ18B5_F4BTjL_ksAvVi18k-Iu-Rlg-ZWpwQDqgS4bxGmVO2Jhsxp5X/s1600/Google+Play+Banner+EN+%25281024x500%2529.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="245" data-original-width="500" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh97Yc3TVp_UbELwY18_OwpLawPTYyeNwkTUwiCJc_VvfnSUI5rQaVyActZYkRCN0XMSTC1KP4YU1iWn8lT10wzxiZ18B5_F4BTjL_ksAvVi18k-Iu-Rlg-ZWpwQDqgS4bxGmVO2Jhsxp5X/s320/Google+Play+Banner+EN+%25281024x500%2529.png" width="320" /></a></div>
<br />
You just add the measurements to the app, and it shows all changes in your weight, builds charts on each indicator (weight, body water percentage, body fat percentage, bones and muscles mass, waist circumference). The application analyzes all measurements and helps you to achieve ideal weight!<br />
<br />
<h3>
<span style="font-size: large;">Weight diary:</span></h3>
Adding weight is an often used operation in the application. And we have tried to make it the most convenient for you – just try it! And if you have scales with the analyzer and a centimetric tape, you will be able to add parameters: bones and muscles mass, body water and fat percentage, and waist circumference. You can also add notes to your measurements.<br />
If entered data incorrectly or decided to remove record - just right swipe a cell.<br />
<br />
<br />
<h3>
<span style="font-size: large;">Weight chart</span></h3>
We have also taken care of beautiful and clear charts for all your weight indicators. If you want to see value and the changes - press any top of the chart.<br />
<br />
<h3>
<span style="font-size: large;">Goals:</span></h3>
Unless there can be a control of weight full without the goals which you try to reach? The application will help you both to lose, and to gain the necessary weight, will prompt how many you have already lost/gained kilograms and how many still remains. All passable goals will be stored in the application and you always will be able to admire the progress!<br />
<br />
<h3>
<span style="font-size: large;">Data analysis:</span></h3>
Extensive set of useful tools and calculators of weight indicators. It contains both BMI calculator, and calculation of ideal weight for different indexes, and daily calorie needs.<br />
<br />
And no advertising! You can quietly work with the application without fearful of appearing of persuasive banners!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-ZdkLcZoNzvY/Wfrrx7K3IwI/AAAAAAAABmc/2T5MgdgyDm4kGhghp3ct_rMnVjNgDM0tQCLcBGAs/s1600/Screen%2B2%2BEN.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="853" data-original-width="480" height="200" src="https://4.bp.blogspot.com/-ZdkLcZoNzvY/Wfrrx7K3IwI/AAAAAAAABmc/2T5MgdgyDm4kGhghp3ct_rMnVjNgDM0tQCLcBGAs/s200/Screen%2B2%2BEN.png" width="112" /></a><a href="https://2.bp.blogspot.com/-Qq7QyJyx2t0/WfrryILXsCI/AAAAAAAABmg/UwOMpXHp2o8ARUl6jtC6wd_FHBc9w8LNQCLcBGAs/s1600/Screen%2B1%2BEN.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="853" data-original-width="480" height="200" src="https://2.bp.blogspot.com/-Qq7QyJyx2t0/WfrryILXsCI/AAAAAAAABmg/UwOMpXHp2o8ARUl6jtC6wd_FHBc9w8LNQCLcBGAs/s200/Screen%2B1%2BEN.png" width="112" /></a><a href="https://3.bp.blogspot.com/-ELkNzNoGNq0/WfrryD4xZvI/AAAAAAAABmY/TQQBcnACxKgeH4-zRo_rynMEsW8u8OX8QCLcBGAs/s1600/Screen%2B5%2BEN.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="853" data-original-width="480" height="200" src="https://3.bp.blogspot.com/-ELkNzNoGNq0/WfrryD4xZvI/AAAAAAAABmY/TQQBcnACxKgeH4-zRo_rynMEsW8u8OX8QCLcBGAs/s200/Screen%2B5%2BEN.png" width="112" /></a></div>
<br />
If you like the application, please, support us -<a href="https://play.google.com/store/apps/details?id=org.snowpard.weightanalyzer" target="_blank"> leave comment and positive rat</a>e. We wish you success in your body control!<br />
<br />
<div style="text-align: center;">
<a href="https://play.google.com/store/apps/details?id=org.snowpard.weightanalyzer&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1" target="_blank"><img alt="Get it on Google Play" height="77" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" width="200" /></a></div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-48312644899776196762017-11-02T12:29:00.000+03:002017-11-02T12:52:06.493+03:00Stages of project development<a href="https://4.bp.blogspot.com/-VPI3sDIF9Bs/WfrkjbBUmdI/AAAAAAAABlU/aPAmGnEZO_kcv1q5sp85UzOpB6H_hzLLQCLcBGAs/s1600/article_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="100" data-original-width="100" src="https://4.bp.blogspot.com/-VPI3sDIF9Bs/WfrkjbBUmdI/AAAAAAAABlU/aPAmGnEZO_kcv1q5sp85UzOpB6H_hzLLQCLcBGAs/s1600/article_1.png" /></a><span id="docs-internal-guid-6425919b-7c0c-80fa-2bd5-fa3cdb859c76"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">In this article I will describe all the stages of development of projects through which I went through when creating my application</span></span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<a name='more'></a><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><a href="https://play.google.com/store/apps/details?id=org.snowpard.weightanalyzer" target="_blank">Snowy: Weight control</a> is a convenient weight diary for your body control. I tried to make the application functional, convenient, that is for myself, as I now use it myself and I constantly think about the question: "How else can I improve my app?".</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: large;">Why Weight Control?</span></span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Not so long ago I had a scales with a body analyzer. It became interesting to me to follow changes in my body and then I created the table in Excel and began to record the results of the weigh-in. As a result, the records became more and more and I wanted to systematize it all.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">So I downloaded the first ten popular applications for weight control, but some of it seemed to me not very convenient to use. And to my chagrin, none of the application did not allow me to record the data from the analysis (bone mass and muscle, body fat and water percentage) - only the weight.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">And why not develop an application for yourself? After all, it's in my power to make a convenient and functional application for my needs and share it with the world. So the idea of the first application “Snow: Weight Control” was born.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: large;">Stages of development:</span></span></h2>
<h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1. Finding the problem you need to solve</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Let's say you found a problem that you want to solve. Most likely this problem has already been solved - and several times, as thousands of new applications appear every day in stores.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">But are all the solutions comfortable? </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b>As practice shows - even the best application can be done even better.</b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2. Drawing up requirements to the application</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">How to start developing the application? With the development of the Terms of Reference. But since this was a personal project, I simplified the document.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">First I sketched out the functionality and examples of screens on a piece of paper, then moved it all to Google Docs. </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b>If you come up with some interesting features or UI elements, move the thoughts to paper - so you will not forget them.</b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3. Development of the UI</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">After formalizing all the requirements and defining the overall vision of the project, it's time to develop the UI.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Very detailed and understandable manuals on Material Design were written by guys from Google. (</span><a href="https://material.io/guidelines/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://material.io/guidelines/</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Also, Google provided a very large number of free icons (https://material.io/icons/) and a color picker tool (https://material.io/color/)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I decided to develop the UI in Sketch (https://www.sketchapp.com) - this program is specially adapted for mobile development and is very convenient for use. The only thing, it is available only for MacOS, but I think that under Windows, you can also find suitable graphics editors.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">For those who use Sketch there is a very good resource with free sources - </span><a href="https://www.sketchappsources.com/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://www.sketchappsources.com</span></a></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">For inspiration, I used Dribbble - </span><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="https://dribbble.com/" style="text-decoration: none;">https://dribbble.com</a></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4. Project architecture</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Now it's time to choose which way to develop your project. For myself, I chose MVP (Model - View - Presenter) - this is a design pattern, which is used mainly to build a user interface.</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: #222222; font-family: Arial; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; margin-left: 18pt; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 3pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Model — stores all the business logic, if necessary receives data from the repository.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: #222222; font-family: Arial; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; margin-left: 18pt; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">View — implements data mapping (from the Model), accesses Presenter for updates.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: #222222; font-family: Arial; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; margin-left: 18pt; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 1pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Presenter — realizes the interaction between the model and the view.</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 1pt; margin-top: 3pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As a library for implementing such an architecture, I used Moxy (</span><a href="https://github.com/Arello-Mobile/Moxy" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://github.com/Arello-Mobile/Moxy</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">) </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 1pt; margin-top: 3pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">5. Writing code and developing UI layouts</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">At this stage, we begin to implement our idea: create data structures, develop layouts, think about logic, write code. About more interesting moments, which I embodied in my project, I'll write in separate articles.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">During the entire development of the project, I additionally used the Teamwork project management service (https://teamwork.com). For a small number of projects and participants, this platform is free. With it you can create new tasks that you need to solve - in order to remember them in the future.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
</div>
<h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6. Testing</span></h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">After you successfully developed the application, be sure to test the application on different versions of the platform and resolutions before publishing. Without emulators there will be no way to do, of course if you do not have a large fleet of mobile devices. In this case, Google again comes to our rescue - after the publication of the application (for example, with alpha or beta testing) through the Developer Console, you can see test reports on several of the most popular devices.</span><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">And it is obligatory, </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b>before publication, to conduct final testing with the help of third disinterested persons (relatives or friends), because at this stage you will already be blinded by monotonous operations and you can skip something.</b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h3>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7. Monetization</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">About this stage is written not one hundred articles. Then everyone decides which way is closer to him. In my application for the first time I declined from advertising in favor of convenience to users. Added only paid functionality.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: large;">Summary</span></span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As a result, everyone chooses a convenient way to solve the tasks. These stages are not instruction on the true path. These are tips that you can take when developing your projects.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">My goal is to try to make this world a little better, so I decided to transfer some of my income to a charity fund to help children with cancer. And I would be very grateful for the support of the <a href="https://play.google.com/store/apps/details?id=org.snowpard.weightanalyzer" target="_blank">project</a>.</span></div>
<span id="docs-internal-guid-6425919b-7c0d-0c78-2e95-95a4d4ea3c71"></span><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 6pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I hope that this article will be useful for someone. </span></div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-13185487548221611102013-12-21T01:00:00.000+04:002013-12-21T01:00:16.832+04:00Game: GeoVoyager<div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-5HKEI-KsnGc/UrStM8WctUI/AAAAAAAAAoU/W5ZH0TypcM0/s1600/icon_72x72.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-5HKEI-KsnGc/UrStM8WctUI/AAAAAAAAAoU/W5ZH0TypcM0/s1600/icon_72x72.png" /></a></div>
Inventor Phileas Fogg made a trip around the world in 80 days. Such travel now you can make from the comfort of home or while standing in line for bread! Find out about the most unusual places and sights, explore the flags of the world, and most importantly test your knowledge - all this is now possible with the new fun game GeoVoyager.</div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"></span><br />
<a name='more'></a>In the game
you will be available 8 different locations: Europe, Africa, North and South
America, Asia, Russia, Australia and, of course, the Whole World. In each of
the locations, you can test yourself on the knowledge Capitals or Flags of all
countries. Sure, you can search Countries. Want to complicate the task? Select
the type of game: Sights or Cities and will be opened for you all the secret
places of our planet. For real geographers exist Mixed game, combining all
types of games.<br />
<br />
Game rules
are very simple: 10 seconds per question, 3-5 questions in level, 7 levels. Go
for it! The nearer will be your answer to the correct, the more scores you
gain.<br />
<br />
Game GeoVoyager
accompanied pleasant, relaxing music that attracts you into a world of secrets
and mysteries of our planet during the whole game.<br />
<br />
Explore
geography, check your knowledge of the game, share your results with friends
and engages in the top best players! And all this without leaving home, in
traffic, at the store, wherever you want kill time! With GeoVoyager you know
where is located the Bermuda Triangle, what place is the oldest in Thailand,
and as far away from you is located Esperance.<br />
<br />
GeoVoyager -
but how well do you know our planet?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-4qnle582G4c/UrSvPcUMFfI/AAAAAAAAAok/H1NKJa3Nc_E/s1600/screen_geo_800x480_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Review: GeoVoyager - Screenshot" border="0" height="120" src="http://2.bp.blogspot.com/-4qnle582G4c/UrSvPcUMFfI/AAAAAAAAAok/H1NKJa3Nc_E/s200/screen_geo_800x480_1.png" title="Review: GeoVoyager - Screenshot" width="200" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-qpM193h7b_9Ki1H_7uASHOuCRKHwSB8HBHAGVaRU7iGILVt5gSaYADcmvF9WtjvGT8lUsg_4X2ul1ptOXYa-HqV56VoWu1OpdClPucJm0tEvyHQpvPUDlMVU6AsW54sbdXyED50xDsC_/s1600/screen_geo_800x480_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Review: GeoVoyager - Screenshot" border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-qpM193h7b_9Ki1H_7uASHOuCRKHwSB8HBHAGVaRU7iGILVt5gSaYADcmvF9WtjvGT8lUsg_4X2ul1ptOXYa-HqV56VoWu1OpdClPucJm0tEvyHQpvPUDlMVU6AsW54sbdXyED50xDsC_/s200/screen_geo_800x480_5.png" title="Review: GeoVoyager - Screenshot" width="200" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWACT8e-9RI-ie_on2i6X-1odqPea2ITq7vIYS0V1NVeDn9tsHOzESe0REpxDGCUo8B_mXeeuhrQuDxz1tWxp6aJyaHVJJe58msaEya3eCKfEKrRvlCnLhHJVpR0QKbmYEPznyyEwR5uOP/s1600/screen_geo_800x480_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Review: GeoVoyager - Screenshot" border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWACT8e-9RI-ie_on2i6X-1odqPea2ITq7vIYS0V1NVeDn9tsHOzESe0REpxDGCUo8B_mXeeuhrQuDxz1tWxp6aJyaHVJJe58msaEya3eCKfEKrRvlCnLhHJVpR0QKbmYEPznyyEwR5uOP/s200/screen_geo_800x480_3.png" title="Review: GeoVoyager - Screenshot" width="200" /></a></div>
<br /></div>
</div>
<h3>
<b><span lang="EN-US">Links</span></b></h3>
<div>
<ul align="justify">
<li><div class="MsoNormal">
<span lang="EN-US">Web-site: <a href="http://snowpard.org/index.php?option=com_content&view=article&id=54&Itemid=90" target="_blank">Link</a></span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US">Google Play: <a href="https://play.google.com/store/apps/details?id=org.snowpard.geovoyager" target="_blank">Link</a></span></div>
</li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-71089112715298651772013-06-13T08:07:00.001+04:002013-06-13T08:10:39.507+04:00Create horizontal menu for Android-based applications<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" /></a></div>
<div class="MsoNormal">
In this
article I want to share one of the ways to develop a nice animated menu or text
horizontal list.<br />
<br />
<br /></div>
<div class="MsoNormal">
</div>
<a name='more'></a><b><br /></b>
<b><br /></b>
<h3>
<b>Concept</b></h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuuOzCgSRomYVxQwj5MqdHEiZbBRHerJAK98lKdM1AzwuhUY0IZ8SWYpUyTMYHtiqriLHeWalC5CRiDl8itsSVD384weRC3yIfC0hc-8NU3JfiBmudmqky8QpjdHiUOJMBjhk8W73_kKeb/s1600/device-2013-06-11-223912.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Create horizontal menu for Android-based applications" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuuOzCgSRomYVxQwj5MqdHEiZbBRHerJAK98lKdM1AzwuhUY0IZ8SWYpUyTMYHtiqriLHeWalC5CRiDl8itsSVD384weRC3yIfC0hc-8NU3JfiBmudmqky8QpjdHiUOJMBjhk8W73_kKeb/s200/device-2013-06-11-223912.png" title="Create horizontal menu for Android-based applications" width="120" /></a><a href="http://3.bp.blogspot.com/-1yjQFZefqOU/UbiQ9UAdbRI/AAAAAAAAAnI/BD8Cx_MzlQY/s1600/device-2013-06-11-223938.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Create horizontal menu for Android-based applications" border="0" height="200" src="http://3.bp.blogspot.com/-1yjQFZefqOU/UbiQ9UAdbRI/AAAAAAAAAnI/BD8Cx_MzlQY/s200/device-2013-06-11-223938.png" title="Create horizontal menu for Android-based applications" width="120" /></a></div>
<br />
<div class="MsoNormal">
To
implement such a list, I'm using a TextSwitcher. This element contains a
TextView, which we may customize on your own.</div>
<div class="MsoNormal">
<span lang="EN-US">TextSwitcher
useful for changing animated text. We will use 3 TextSwitcher. Main Switcher
used to identify the current list element, and the side - for navigation
options and display elements of the next. <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">For the
shadowing effect, we will create a gradient TextView with the transition from
transparent to the desired color.<o:p></o:p></span><br />
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<h3>
<b><span lang="EN-US">Preparing</span><span lang="EN-US"> </span></b><b><span lang="EN-US">resources</span><o:p></o:p></b></h3>
</div>
<div class="MsoNormal">
To start
the animation will develop change the text from left to right and right to left.</div>
<div class="MsoNormal">
<span lang="EN-US">Source code
anim/push_left_in.xml <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromXDelta</span>=<i><span style="color: #2a00ff;">"-100%p"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toXDelta</span>=<i><span style="color: #2a00ff;">"0"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromAlpha</span>=<i><span style="color: #2a00ff;">"0.0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toAlpha</span>=<i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
anim/push_left_out.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromXDelta</span>=<i><span style="color: #2a00ff;">"0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toXDelta</span>=<i><span style="color: #2a00ff;">"-100%p"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromAlpha</span>=<i><span style="color: #2a00ff;">"1.0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toAlpha</span>=<i><span style="color: #2a00ff;">"0.0"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US"> <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
anim/push_right_in.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromXDelta</span>=<i><span style="color: #2a00ff;">"100%p"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toXDelta</span>=<i><span style="color: #2a00ff;">"0"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromAlpha</span>=<i><span style="color: #2a00ff;">"0.0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toAlpha</span>=<i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
anim/push_right_out.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromXDelta</span>=<i><span style="color: #2a00ff;">"0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toXDelta</span>=<i><span style="color: #2a00ff;">"100%p"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"300"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromAlpha</span>=<i><span style="color: #2a00ff;">"1.0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toAlpha</span>=<i><span style="color: #2a00ff;">"0.0"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">For
Gradient TextView to describe its properties:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
values/attrs.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">declare-styleable</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"GradientTextView"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">attr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"colorStartGradient"</span></i>
<span style="color: #7f007f;">format</span>=<i><span style="color: #2a00ff;">"integer"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">attr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"colorEndGradient"</span></i>
<span style="color: #7f007f;">format</span>=<i><span style="color: #2a00ff;">"integer"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">declare-styleable</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">></span><span style="font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">resources</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">As well add
color for the gradient:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
values/colors.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"textview_start_gradient"</span></i><span style="color: teal;">></span>#00ffffff<span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"textview_end_gradient"</span></i><span style="color: teal;">></span>#88ffffff<span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">resources</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Develop the
the main layout of the window, which will contain our animated menu:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
layout/main.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:orientation</span>=<i><span style="color: #2a00ff;">"horizontal"</span></i> <span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextSwitcher</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/scoreboard_location_left"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"0dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_weight</span>=<i><span style="color: #2a00ff;">"1"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextSwitcher</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/scoreboard_location"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"0dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_weight</span>=<i><span style="color: #2a00ff;">"1"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextSwitcher</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/scoreboard_location_right"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"0dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_weight</span>=<i><span style="color: #2a00ff;">"1"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">TextSwitcher
contains a TextView. Our project will use two types of text controls: normal
(for the central element) and the gradient (for side elements).<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
layout/central_textview.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:gravity</span>=<i><span style="color: #2a00ff;">"center"</span></i><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/textview"</span></i>
<span style="color: teal;">/></span></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
layout/gradient_textview.xml<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">org.snowpard.proects.twenty.GradientTextView</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:app</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/org.snowpard.proects.twenty"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/textview"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:gravity</span>=<i><span style="color: #2a00ff;">"center"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">app:colorEndGradient</span>=<i><span style="color: #2a00ff;">"@color/textview_end_gradient"</span></i><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">app:colorStartGradient</span>=<i><span style="color: #2a00ff;">"@color/textview_start_gradient"</span></i>
<span style="color: teal;">/></span></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<h3>
<b>Developing</b></h3>
</div>
<div class="MsoNormal">
<ul>
<li>Create
Gradient TextView</li>
</ul>
<o:p></o:p></div>
<pre class="brush: java">public class GradientTextView extends TextView {
private int colorStartGradient, colorEndGradient;
private boolean direction;
private LinearGradient gradient;
public GradientTextView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.GradientTextView);
colorStartGradient = a.getColor(R.styleable.GradientTextView_colorStartGradient, -2);
colorEndGradient = a.getColor(R.styleable.GradientTextView_colorEndGradient, -2);
direction = false;
}
public void setDirection(boolean direction)
{
this.direction = direction;
}
@Override
protected void onDraw(Canvas canvas) {
if (colorStartGradient != -2 && colorEndGradient != -2)
{
gradient = new LinearGradient(direction ? getWidth() : 0, 0, direction ? 0 : getWidth(), 0, colorStartGradient,
colorEndGradient, TileMode.CLAMP);
getPaint().setShader(gradient);
}
super.onDraw(canvas);
}
}</pre>
<div class="MsoNormal">
<ul>
<li>Development
of the main class MainActivity, work with a horizontal menu.</li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US">Add a
constant in the class, which will be responsible for the direction of the
animation.</span></div>
<pre class="brush: java">public static final int DIRECTION_NONE = 0;
public static final int DIRECTION_LEFT = 1;
public static final int DIRECTION_RIGHT = 2;
private int current_direction = DIRECTION_RIGHT;</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span>
<span lang="EN-US">We describe
the controls and animations that will be used to operate the menu:</span></div>
<pre class="brush: java">private TextSwitcher switcher, switcher_left, switcher_right;
private Animation in_left, in_right, out_left, out_right;</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span>
<span lang="EN-US">And to add
an array of items for the horizontal menu and the index for the identification
of the current element:</span></div>
<pre class="brush: java">private String[] locations = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};
private int current_index;</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span>
<span lang="EN-US">Develop a
method of for working with a horizontal menu:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">-
setAnimation: to set the desired animation to change the text</span></div>
<pre class="brush: java">private void setAnimation(TextSwitcher switcher, Animation in, Animation out)
{
switcher.setInAnimation(in);
switcher.setOutAnimation(out);
}</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">-
initSwitch: </span>initialization <span lang="EN-US">TextSwitcher</span></div>
<pre class="brush: java">private void initSwitch(TextSwitcher switcher, final int place, Animation in, Animation out, final Context context)
{
switcher.setFactory(new ViewFactory() {
@Override
public View makeView() {
TextView view = (TextView)LayoutInflater.from(context).inflate((place == 0) ? R.layout.central_textview: R.layout.gradient_textview, null).findViewById(R.id.textview);
if (view instanceof GradientTextView)
((GradientTextView)view).setDirection(place != 1);
return view;
}
});
setAnimation(switcher, in, out);
}</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">-
setSwitch: change an item in the horizontal menu</span></div>
<pre class="brush: java">private void setSwitch(int direction)
{
boolean isUpdate = false;
if (direction == DIRECTION_LEFT && current_index > 0)
{
isUpdate = true;
current_index--;
}
else if (direction == DIRECTION_RIGHT && current_index < locations.length - 1)
{
isUpdate = true;
current_index++;
} else if (direction == DIRECTION_NONE)
isUpdate = true;
if (isUpdate)
{
if (direction != current_direction && direction != DIRECTION_NONE)
{
current_direction = direction;
if (current_direction == DIRECTION_RIGHT)
{
setAnimation(switcher_left, in_right, out_left);
setAnimation(switcher, in_right, out_left);
setAnimation(switcher_right, in_right, out_left);
} else
{
setAnimation(switcher_left, in_left, out_right);
setAnimation(switcher, in_left, out_right);
setAnimation(switcher_right, in_left, out_right);
}
}
if (current_index - 1 >= 0)
switcher_left.setText(locations[current_index - 1]);
else
switcher_left.setText("");
switcher.setText(locations[current_index]);
if (current_index + 1 <= locations.length - 1)
switcher_right.setText(locations[current_index + 1]);
else
switcher_right.setText("");
}
}</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Now you
need to initialize all in the method onCreate() of our Activity:<o:p></o:p></span></div>
<pre class="brush: java">protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
in_left = AnimationUtils.loadAnimation(this,
R.anim.push_left_in);
in_right = AnimationUtils.loadAnimation(this,
R.anim.push_right_in);
out_right = AnimationUtils.loadAnimation(this,
R.anim.push_right_out);
out_left = AnimationUtils.loadAnimation(this,
R.anim.push_left_out);
switcher = (TextSwitcher) findViewById(R.id.scoreboard_location);
switcher_left = (TextSwitcher) findViewById(R.id.scoreboard_location_left);
switcher_right = (TextSwitcher) findViewById(R.id.scoreboard_location_right);
initSwitch(switcher, 0, in_right, out_left, this);
initSwitch(switcher_left, 1, in_right, out_left, this);
initSwitch(switcher_right, 2, in_right, out_left, this);
switcher_left.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setSwitch(DIRECTION_LEFT);
}
});
switcher_right.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setSwitch(DIRECTION_RIGHT);
}
});
setSwitch(DIRECTION_NONE);
}</pre>
<div class="MsoNormal">
<h3>
<b><span lang="EN-US">Links</span></b></h3>
</div>
<div class="MsoNormal">
<ul>
<li>The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b19/MenuSwitchExample.zip">zip</a></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-4262238271854073552013-03-31T15:40:00.000+04:002013-03-31T15:54:54.685+04:00Programmatically change language in Android-application<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Programmatically change language in Android-application" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Programmatically change language in Android-application" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Sometimes
it is necessary in the application provide an opportunity the user to change
the language of the application, regardless of the locale device. In this article
I will show you how to do it.</span></div>
<a name='more'></a><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQc4VMC7hpY2gWRnIbk1yyCCZBGw43cBwmvXNVsOMIKmE5WJNbTBDRC73saPAij6qxnMj1Vw1cgdC2WIIgbkK_x6_72Q2VSJ83vb7vs7QFiKGQHnc2UrprxHcu0WAJ7Q08AOSGYYDlCGYI/s1600/device-2013-03-26-230943.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQc4VMC7hpY2gWRnIbk1yyCCZBGw43cBwmvXNVsOMIKmE5WJNbTBDRC73saPAij6qxnMj1Vw1cgdC2WIIgbkK_x6_72Q2VSJ83vb7vs7QFiKGQHnc2UrprxHcu0WAJ7Q08AOSGYYDlCGYI/s320/device-2013-03-26-230943.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-h98qMI_ASRw/UVgfudzkY0I/AAAAAAAAAl4/fYf414JS7bw/s1600/device-2013-03-26-231005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="http://2.bp.blogspot.com/-h98qMI_ASRw/UVgfudzkY0I/AAAAAAAAAl4/fYf414JS7bw/s320/device-2013-03-26-231005.png" width="320" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<br />
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Preparing resources</span></b></h4>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Create the
string resources for four languages: English, Russian, French and German.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
values/strings.xml (English, Default)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"app_name"</span></i><span style="color: teal;">></span><span style="color: black;">ChangeLocaleExample</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"hello_world"</span></i><span style="color: teal;">></span><span style="color: black;">Hello World</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_en"</span></i><span style="color: teal;">></span><span style="color: black;">English</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_ru"</span></i><span style="color: teal;">></span><span style="color: black;">Russian</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_de"</span></i><span style="color: teal;">></span><span style="color: black;">German</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_fr"</span></i><span style="color: teal;">></span><span style="color: black;">French</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
values-ru/strings.xml (Russian)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"hello_world"</span></i><span style="color: teal;">></span></span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">Привет</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">, </span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">Мир</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_en"</span></i><span style="color: teal;">></span></span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">Английский</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_ru"</span></i><span style="color: teal;">></span></span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">Русский</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_de"</span></i><span style="color: teal;">></span></span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">Немецкий</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_fr"</span></i><span style="color: teal;">></span></span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">Французский</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
values-fr/strings.xml (French)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"hello_world"</span></i><span style="color: teal;">></span><span style="color: black;">Bonjour monde</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_en"</span></i><span style="color: teal;">></span><span style="color: black;">Anglais</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_ru"</span></i><span style="color: teal;">></span><span style="color: black;">Russie</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_de"</span></i><span style="color: teal;">></span><span style="color: black;">Allemand</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_fr"</span></i><span style="color: teal;">></span><span style="color: black;">Français</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
values-de/strings.xml (German)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"hello_world"</span></i><span style="color: teal;">></span><span style="color: black;">Hallo Welt</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_en"</span></i><span style="color: teal;">></span><span style="color: black;">Englisch</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_ru"</span></i><span style="color: teal;">></span><span style="color: black;">Russisch</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_de"</span></i><span style="color: teal;">></span><span style="color: black;">Deutsch</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_fr"</span></i><span style="color: teal;">></span><span style="color: black;">Französisch</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">resources</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Layout
application will consist of four buttons that change the language of the
application and the text box to display the greeting line:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"vertical"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/txt_hello"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/hello_world"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"horizontal"</span></i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/btn_en"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"</span><span style="color: black;">@string/btn_en</span><span style="color: #2a00ff;">" </span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/btn_ru"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/btn_ru"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/btn_de"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/btn_de"</span></i>
<span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/btn_fr"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/btn_fr"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b></div>
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Developing an application</span></b></h4>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add
attributes to our Activity.</span></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">UI elements:</span></li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> TextView </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">txt_hello</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> Button </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">btn_en</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">btn_ru</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">btn_fr</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">, </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">btn_de</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal">
<ul>
<li>Current
local application<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span></li>
</ul>
</div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> Locale </span><span lang="EN-US" style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">myLocale</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Develop
necessary methods to change the language in the application.</span></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Changing
the language in the application:</span></li>
</ul>
</div>
<pre class="brush: java">public void changeLang(String lang)
{
if (lang.equalsIgnoreCase(""))
return;
myLocale = new Locale(lang);
saveLocale(lang);
Locale.setDefault(myLocale);
android.content.res.Configuration config = new android.content.res.Configuration();
config.locale = myLocale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
updateTexts();
}</pre>
<br />
<div class="MsoNormal">
<ul>
<li>Save
the current locale<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span></li>
</ul>
</div>
<pre class="brush: java">public void saveLocale(String lang)
{
String langPref = "Language";
SharedPreferences prefs = getSharedPreferences("CommonPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(langPref, lang);
editor.commit();
}</pre>
<br />
<div class="MsoNormal">
<ul>
<li>Loading a saved locale:</li>
</ul>
</div>
<pre class="brush: java">public void loadLocale()
{
String langPref = "Language";
SharedPreferences prefs = getSharedPreferences("CommonPrefs", Activity.MODE_PRIVATE);
String language = prefs.getString(langPref, "");
changeLang(language);
}</pre>
<br />
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Updating
the UI elements of the current screen (you need to update only the screen in
which a change of locale): </span></li>
</ul>
</div>
<pre class="brush: java">private void updateTexts()
{
txt_hello.setText(R.string.hello_world);
btn_en.setText(R.string.btn_en);
btn_ru.setText(R.string.btn_ru);
btn_fr.setText(R.string.btn_fr);
btn_de.setText(R.string.btn_de);
}</pre>
<br />
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add events
to the buttons. For this implement OnClickListener interface for our Activity
(implements OnClickListener). And implement the method onClick().</span></div>
<pre class="brush: java">public void onClick(View v) {
String lang = "en";
switch (v.getId()) {
case R.id.btn_en:
lang = "en";
break;
case R.id.btn_ru:
lang = "ru";
break;
case R.id.btn_de:
lang = "de";
break;
case R.id.btn_fr:
lang = "fr";
break;
default:
break;
}
changeLang(lang);
}</pre>
<br />
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Finally,
consistent with the work with the change of language in the method onCreate ()
of our Activity:</span></div>
<pre class="brush: java">protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.txt_hello = (TextView)findViewById(R.id.txt_hello);
this.btn_en = (Button)findViewById(R.id.btn_en);
this.btn_ru = (Button)findViewById(R.id.btn_ru);
this.btn_fr = (Button)findViewById(R.id.btn_fr);
this.btn_de = (Button)findViewById(R.id.btn_de);
this.btn_en.setOnClickListener(this);
this.btn_ru.setOnClickListener(this);
this.btn_fr.setOnClickListener(this);
this.btn_de.setOnClickListener(this);
loadLocale();
}</pre>
<br />
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h4>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b18/ChangeLocaleExample.zip">zip</a></span></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com1tag:blogger.com,1999:blog-6116172484948741564.post-2166874479041209912013-03-29T08:52:00.002+04:002013-03-29T08:52:45.945+04:00Gallery with ViewFlipper<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Gallery with ViewFlipper" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Gallery with ViewFlipper" /></a>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Often in
the development gallery in mobile applications from the developer is a problem
out of memory when working with a lot of of images. In this article, we will
develop the gallery, which will help prevent such messages as OutOfMemoryError
or OutOfMemoryException.</span><br />
<div class="MsoNormal">
<br />
<a name='more'></a><div>
<br /></div>
</div>
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Gallery features </span></b></h4>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">With a
large number of images the application will work stably without
OutOfMemoryError;</span></div>
</li>
<li><div class="MsoNormal">
Animated transitions between images;</div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Ability
to loop the gallery.</span></div>
</li>
</ul>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Ol-B2JhSjtXWk2FGhH0EmwggJUtVmJ4dNLul31-9P71mj7CnO7Fu8LpY-ehnhSMKq3jndVZFoGzm2ZDjeKNd11DuwmZjCJzUeITRm9NRSHYb1eh7iEnAJJK-kfvB7kKAmVg4DlEEGn-9/s1600/device-2013-03-27-220931.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Ol-B2JhSjtXWk2FGhH0EmwggJUtVmJ4dNLul31-9P71mj7CnO7Fu8LpY-ehnhSMKq3jndVZFoGzm2ZDjeKNd11DuwmZjCJzUeITRm9NRSHYb1eh7iEnAJJK-kfvB7kKAmVg4DlEEGn-9/s320/device-2013-03-27-220931.png" width="192" /></a></div>
<b style="mso-bidi-font-weight: normal;"><br /></b></div>
<h4>
<b style="mso-bidi-font-weight: normal;">Preparing resources</b></h4>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
strings.xml</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"app_name"</span></i><span style="color: teal;">></span><span style="color: black;">ViewFlipperExample</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"str_loop"</span></i><span style="color: teal;">></span><span style="color: black;">Looped</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"str_pages"</span></i><span style="color: teal;">></span><span style="color: black;">%1$s/%2$s</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">resources</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">F</span><span lang="EN-US" style="mso-ansi-language: EN-US;">rom here
you can download the necessary images to the gallery.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Will also create
animation files for transitions between images.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code:
anim/go_next_in.xml</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:fromXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"100%p"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:fromAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code:
anim/go_next_out.xml</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:fromXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"-100%p"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:fromAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code:
anim/go_prev_in.xml</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:fromXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"-100%p"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:fromAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code:
anim/go_prev_out.xml</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">translate</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:fromXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toXDelta</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"100%p"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">alpha</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:fromAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:toAlpha</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:duration</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"400"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">set</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Both the
layout of the application. It will consist of ViewFlipper, TextView to display
the current page and the CheckBox to be able to loop the gallery.</span></div>
<div class="MsoNormal">
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"vertical"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">ViewFlipper</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/gallery"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"horizontal"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">CheckBox</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/checkBoxLoop"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/str_loop"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/txtPages"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
gallery_item.xml:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">ImageView</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/gallery_item"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">android:scaleType</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">"centerInside"</span></i><span style="font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"> <span style="color: teal;">></span></span><span style="font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"><o:p> </o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">ImageView</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b></div>
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Development</span></b></h4>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The idea of
</span><span lang="EN-US" style="font-family: "Cambria Math","serif"; mso-ansi-language: EN-US; mso-bidi-font-family: "Cambria Math";"></span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">the gallery is to
store in memory only one View from the current image. In the transition to the
next image, add a new View to the ViewFlipper, and the current to remove. Such
a way application memory is not </span><span lang="EN-US" style="mso-ansi-language: EN-US;">increased. </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Will
develop the galleries of the main Activity (MainActivity).</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">We need the
following attributes:</span></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">UI</span><span lang="EN-US"> </span>elements</li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> ViewFlipper </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">gallery</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> TextView </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">txtPages</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> CheckBox </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">checkBoxLoop</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> LayoutInflater </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">inflater</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> = </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">null;</span></b></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Coordinate X when clicking on ViewFlipper</span></li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">float</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">fromPosition</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The index
of the current image</span></li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">count</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Li</span>st
of images</li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> List<Bitmap> </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">items</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">;</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Develop the
main methods for the gallery:</span></div>
<div class="MsoNormal">
<ul>
<li>Preparing
View with the image</li>
</ul>
</div>
<pre class="brush: java">private View addImage(Bitmap bitmap)
{
ImageView view = (ImageView)inflater.inflate(R.layout.gallery_item, null);
view.setImageBitmap(bitmap);
return view;
}</pre>
<br />
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Deleting
an image from the gallery</span></li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private void removeImages()
{
if (gallery.getChildCount() > 2)
{
gallery.removeViewAt(0);
System.gc();
}
}</pre>
<br /></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Adding
images to the gallery, depending on the direction</span></li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private void addNextImage(int position, boolean isLeft)
{
if (isLeft)
{
if (position >= 0)
{
gallery.addView(addImage(items.get(position)));
}
} else
{
if (position < items.size())
gallery.addView(addImage(items.get(position)));
}
}</pre>
<br /></div>
<div class="MsoNormal">
<ul>
<li>Update
UI elements</li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private void updateTextView()
{
String pages = String.format(getString(R.string.str_pages), (count + 1), items.size());
txtPages.setText(pages);
}</pre>
<br /></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Go to the
next image</span></li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">public void next()
{
if (count >= items.size() - 1 && !checkBoxLoop.isChecked())
return;
else if (count >= items.size() - 1 && checkBoxLoop.isChecked())
count = -1;
count++;
addNextImage(count, false);
gallery.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.go_next_in));
gallery.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.go_next_out));
gallery.showNext();
removeImages();
updateTextView();
}</pre>
<br /></div>
<div class="MsoNormal">
<ul>
<li>Go to previous image</li>
</ul>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">public void previous()
{
if (count <= 0 && !checkBoxLoop.isChecked())
return;
else if (count <= 0 && checkBoxLoop.isChecked())
count = items.size();
count--;
addNextImage(count, true);
gallery.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.go_prev_in));
gallery.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.go_prev_out));
gallery.showNext();
removeImages();
updateTextView();
}</pre>
<br /></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Initialize the list with images</span></li>
</ul>
</div>
<div class="MsoNormal">
<pre class="brush: java">private void initList()
{
items = new ArrayList<bitmap>();
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_0));
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_1));
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_2));
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_3));
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_4));
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_5));
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_6));
items.add(BitmapFactory.decodeResource(getResources(), R.drawable.sample_7));
}</bitmap></pre>
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Finally,
consistent with the work of galleries in the method onCreate our Activity:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initList();
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.txtPages = (TextView)findViewById(R.id.txtPages);
this.checkBoxLoop = (CheckBox)findViewById(R.id.checkBoxLoop);
this.gallery = (ViewFlipper)findViewById(R.id.gallery);
this.gallery.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
fromPosition = event.getX();
break;
case MotionEvent.ACTION_UP:
float toPosition = event.getX();
if (fromPosition > toPosition + 20)
{
next();
return true;
}
else if (fromPosition < toPosition - 20)
{
previous();
return true;
}
default:
break;
}
return true;
}
});
gallery.addView(addImage(items.get(0)));
updateTextView();
}</pre>
<div class="MsoNormal">
<br /></div>
</div>
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h4>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b17/ViewFlipperExample.zip">zip</a></span></li>
</ul>
</div>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-20593001820426348932013-03-27T22:16:00.000+04:002013-03-27T22:16:26.882+04:00Typewriter TextView<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Typewriter TextView" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Typewriter TextView" /></a></div>
<div class="MsoNormal">
Today, we
will develop the element to be one character to stamp text on the screen.</div>
<div class="MsoNormal">
<b><span lang="EN-US"><br /></span></b></div>
<a name='more'></a><br />
<div class="MsoNormal">
<b><span lang="EN-US"><br /></span></b>
<b><span lang="EN-US"><br /></span></b></div>
<h4>
<b><span lang="EN-US">Development TypewriterTextView</span></b></h4>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_eEwoPWTZcSmaMrzeF596W7fWDDGSpSi4gIjlbijAyoTLzE-kU4DbPXtF9ZUNrW4ViKB15aYrypTEltNqQH4obAVe9keojxrrTbNqdfrDSMPNUvZGzb11HBtgBkpVNAkP1z5-r_GlOYRo/s1600/device-2013-03-27-220907.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_eEwoPWTZcSmaMrzeF596W7fWDDGSpSi4gIjlbijAyoTLzE-kU4DbPXtF9ZUNrW4ViKB15aYrypTEltNqQH4obAVe9keojxrrTbNqdfrDSMPNUvZGzb11HBtgBkpVNAkP1z5-r_GlOYRo/s320/device-2013-03-27-220907.png" width="192" /></a></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">The basis
of our class will be normal TextView. Create a new class TypewriterTextView and
extend it from TextView.<o:p></o:p></span></div>
<pre class="brush: java">public class TypewriterTextView extends TextView {
public TypewriterTextView(Context context) {
super(context);
}
public TypewriterTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TypewriterTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
}
</pre>
<br />
<div class="MsoNormal">
<span lang="EN-US">Add the
following attributes to our class:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">- The
display time a single character<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">final</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">static</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">float</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><i><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TEXT_CHARACTER_DELAY</span></i><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> = 0.1f;</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">final</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">static</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><i><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TEXT_CHARACTER_DELAY_MS</span></i><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> = (</span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">)(</span><i><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TEXT_CHARACTER_DELAY</span></i><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> * 1000);</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">- The index
of the current character<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">mCurrentCharacter</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">;<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">- The time
elapsed since the last character display<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">long</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">mLastTime</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">;<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">- T</span>he
display text<span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">private</span></b><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> CharSequence </span><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">mText</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">;</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Override
method rendering for displaying text character by character (onDraw()).<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
</div>
<pre class="brush: java">public void onDraw(Canvas canvas) {
final long time = SystemClock.uptimeMillis();
final long delta = time - mLastTime;
if (delta > TEXT_CHARACTER_DELAY_MS) {
if (mText != null) {
if (mCurrentCharacter <= mText.length()) {
CharSequence subtext = mText.subSequence(0, mCurrentCharacter);
setText(subtext, TextView.BufferType.SPANNABLE);
mCurrentCharacter++;
postInvalidateDelayed(TEXT_CHARACTER_DELAY_MS);
}
}
}
super.onDraw(canvas);
}</pre>
<br />
<div class="MsoNormal">
<span lang="EN-US">Add a
method to set a new text<o:p></o:p></span></div>
<pre class="brush: java">public void setTypewriterText(CharSequence text) {
mText = text;
mCurrentCharacter = 0;
mLastTime = 0;
postInvalidate();
}</pre>
<div class="MsoNormal">
<span lang="EN-US">And the
method to display the full text of the entire<o:p></o:p></span></div>
<pre class="brush: java">public void snapToEnd() {
mCurrentCharacter = mText.length() - 1;
}</pre>
<pre class="brush: java">
</pre>
<div class="MsoNormal">
<h4>
<b><span lang="EN-US">Preparing resources</span></b></h4>
</div>
<div class="MsoNormal">
<span lang="EN-US">Source code
of string resources (values/strings)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="font-family: 'Courier New'; font-size: 13px;"> </span><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"app_name"</span></i><span style="color: teal;">></span>TypewriterTextView<span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"btn_txt"</span></i><span style="color: teal;">></span>Type<span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"sample_text"</span></i><span style="color: teal;">></span>Android powers hundreds of millions
of mobile devices in more than 190 countries around the world. It\'s the
largest installed base of any mobile platform and growing fast—every day
another million users power up their Android devices for the first time and
start looking for apps, games, and other digital content.<span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"><span style="font-family: 'Courier New'; font-size: 13px;"> </span><span style="font-family: 'Courier New'; font-size: 13px;"> </span></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">resources</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span><o:p></o:p></div>
<div class="MsoNormal">
<span lang="EN-US">Layout of
application will consist of the input text fields, button and typewriter
TextView.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="font-family: 'Courier New'; font-size: 13px;"> </span><span style="font-family: 'Courier New'; font-size: 13px;"> </span><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:orientation</span>=<i><span style="color: #2a00ff;">"vertical"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">EditText</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/typeEd"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/typeBtn"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:text</span>=<i><span style="color: #2a00ff;">"@string/btn_txt"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">org.snowpard.proects.seventeen.TypewriterTextView</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/typeTxt"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_weight</span>=<i><span style="color: #2a00ff;">"1"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="font-family: 'Courier New'; font-size: 13px;"> </span><span style="font-family: 'Courier New'; font-size: 13px;"> </span></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US"><o:p></o:p></span><br />
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><br /></span>
<h4>
<b><span lang="EN-US">MainActivity</span></b></h4>
</div>
<div class="MsoNormal">
<span lang="EN-US">Source code
of the main Activity<o:p></o:p></span></div>
<pre class="brush: java">public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TypewriterTextView ttv = (TypewriterTextView)findViewById(R.id.typeTxt);
ttv.setTypewriterText(getString(R.string.sample_text));
ttv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ttv.snapToEnd();
}
});
final EditText et = (EditText)findViewById(R.id.typeEd);
Button btn = (Button)findViewById(R.id.typeBtn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ttv.setTypewriterText(et.getText());
}
});
}
}</pre>
<div class="MsoNormal">
<h4>
<b><span lang="EN-US">Links</span></b></h4>
</div>
<div class="MsoNormal">
</div>
<ul>
<li>The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b16/TypewriterTextView.zip">zip</a></li>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-70398066144833547462013-03-07T22:18:00.001+04:002013-03-27T22:40:35.883+04:00Review: AppSurfer<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMkhixvfxgHZx3D7LGiaPPm8MHJV3nF45iOn_LqpxfwipJEqkYdC6sUwB-JiOQqB0-44-CZ5YZUgAnmDgQl1R7xX9tkUwlf_4KXPXmiFNZsUxXQ5LxoX-ejS1dHrwnlrMEVjWmHDCmOR2E/s1600/appsurfer.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="AppSurfer" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMkhixvfxgHZx3D7LGiaPPm8MHJV3nF45iOn_LqpxfwipJEqkYdC6sUwB-JiOQqB0-44-CZ5YZUgAnmDgQl1R7xX9tkUwlf_4KXPXmiFNZsUxXQ5LxoX-ejS1dHrwnlrMEVjWmHDCmOR2E/s1600/appsurfer.png" title="AppSurfer" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Interesting
service that allows to test Android-apps directly in the browser before
installing it on the device.</span><br />
<div class="MsoNormal">
<a name='more'></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<br />
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><b>Features:</b></span></div>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Applications
and games run in a browser</span></div>
</li>
<li><div class="MsoNormal">
Service
work for all of them, be it ipads, tablets, desktops</div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Widgets
with the application can be embedded in blogs and websites</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Absolutely
free</span></div>
</li>
</ul>
<div class="MsoNormal">
<div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">AppSurfer,
an Indian start-up, service develops the principle of "try before you
buy" for Android apps. This service allows users to test applications and
games, before they download (and eventually buy) for your smartphone or tablet.</span></div>
</div>
<div class="MsoNormal">
<div>
<br /></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Developers
can build browser-based applications to websites, blogs, share them on
Facebook.</span></div>
<div class="MsoNormal">
<div>
<br /></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Example of
a widget to play BrainLand:</span></div>
<iframe allowtransparency="true" frameborder:="" none="" src="https://www.appsurfer.com/widget/c75adc60-2380-0130-fe42-1231381fff99?phone_align=left&scroll=false&tour=true&action=embedwidget&controller=publisher%2Fapps&id=17179-brain-land&referrer=https://publisher.appsurfer.com/apps/17179-brain-land" style="border: none; height: 620px; width: 620px;"></iframe>
<br />
<div class="MsoNormal">
<div>
<br /></div>
</div>
<h4>
Links</h4>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">AppSurver: <a href="http://appsurfer.com/">http://appsurfer.com</a></span></div>
</li>
<li>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Link to the
game <a href="http://www.appsurfer.com/apps/17175-tower-of-masters">Tower of Masters</a></span>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Link to the
game <a href="http://www.appsurfer.com/apps/17181-tarabanya-talking-pet-free">Tarabanya</a></span></div>
</li>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-41805545636215976142013-02-24T22:55:00.000+04:002013-03-01T10:11:46.400+04:00Interface: Gradient TextView<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Interface: Gradient TextView" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Interface: Gradient TextView" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Today we
look at how you can add new properties to the elements of the example TextView,
to paint it in a gradient.</span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"></span><br />
<br />
<a name='more'></a><br />
<br />
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Practice</span></b></h4>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-9LyuEztJ9cs/USphyCvyfKI/AAAAAAAAAjU/PTd7E67OMts/s1600/device-2013-02-22-081417.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-9LyuEztJ9cs/USphyCvyfKI/AAAAAAAAAjU/PTd7E67OMts/s320/device-2013-02-22-081417.png" width="192" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">To add new
properties to the element, it is necessary to describe them as attributes in
the xml-file values/attrs.xml.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i>
<span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">declare-styleable</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"GradientTextView"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">attr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"colorStartGradient"</span></i>
<span style="color: #7f007f;">format</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"integer"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">attr</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"colorEndGradient"</span></i>
<span style="color: #7f007f;">format</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"integer"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">declare-styleable</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Will describe colors for our gradient (colors.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i>
<span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"textview_start_gradient"</span></i><span style="color: teal;">></span><span style="color: black;">#ffcccccc</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"textview_end_gradient"</span></i><span style="color: teal;">></span><span style="color: black;">#ff56a9c7</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now
developed a new class for our element. As an attribute of this class are the
starting and ending color of the gradient. In the constructor of the class to
get the attributes of the xml-file. Gradient set by the method setShader(). As
the gradient to add a linear gradient.</span></div>
<div class="MsoNormal">
Source code (GradientTextView.java)<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span></div>
<pre class="brush: java">public class GradientTextView extends TextView {
private int colorStartGradient, colorEndGradient;
public GradientTextView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.GradientTextView);
colorStartGradient = a.getColor(R.styleable.GradientTextView_colorStartGradient, -2);
colorEndGradient = a.getColor(R.styleable.GradientTextView_colorEndGradient, -2);
}
@Override
protected void onDraw(Canvas canvas) {
if (colorStartGradient != -2 && colorEndGradient != -2)
{
getPaint().setShader(
new LinearGradient(0, 0, 0, getHeight(), colorStartGradient,
colorEndGradient, TileMode.MIRROR));
}
super.onDraw(canvas);
}
}</pre>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now we add
our element in main.xml. To add new properties, you must write the following
line:</span><span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> xmlns:app</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"http://schemas.android.com/apk/res/org.snowpard.proects.sixteen"</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;">.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><br /></span>
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RelativeLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">xmlns:app</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/org.snowpard.proects.sixteen"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">org.snowpard.proects.sixteen.GradientTextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/gradient_textview"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/app_name"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"35sp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">app:colorEndGradient</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@color/textview_end_gradient"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">app:colorStartGradient</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@color/textview_start_gradient"</span></i>
<span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">RelativeLayout</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<br />
<h4>
<b><span lang="EN-US">Shadow</span></b></h4>
<div class="MsoNormal">
<span lang="EN-US">If you want
to add a shadow to TextView, then the usual way (properties in xml) will give
the wrong result because setShader change the color of the element TextView.
Thus, the color of the shadow set using xml not draw. To add a shadow to our element,
you must do the following:<o:p></o:p></span></div>
<div class="MsoNormal">
</div>
<ul>
<li>Add a
new color in color.xml:</li>
</ul>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"textview_shadow"</span></i><span style="color: teal;">></span>#ff674125<span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
</div>
<ul>
<li>Describe
a new property for GradientTextView in attrs.xml:</li>
</ul>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">attr</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"colorShadowGradient"</span></i> <span style="color: #7f007f;">format</span>=<i><span style="color: #2a00ff;">"integer"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal">
</div>
<ul>
<li>Add a
property to shadows in main.xml</li>
</ul>
<div class="MsoNormal">
<span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">app:colorShadowGradient</span><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">"@color/textview_shadow"</span></i></div>
<div class="MsoNormal">
</div>
<ul>
<li>GradientTextView
change class to work with shadow. The idea is to draw the element parts: first
the shadow, then the element itself.</li>
</ul>
<pre class="brush: java">public class GradientTextView extends TextView {
private int colorStartGradient, colorEndGradient, colorShadow;
public GradientTextView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.GradientTextView);
colorShadow = a.getColor(R.styleable.GradientTextView_colorShadowGradient, -2);
colorStartGradient = a.getColor(R.styleable.GradientTextView_colorStartGradient, -2);
colorEndGradient = a.getColor(R.styleable.GradientTextView_colorEndGradient, -2);
}
@Override
protected void onDraw(Canvas canvas) {
if (colorShadow != -2)
{
getPaint().setShadowLayer(3, 3, 5, colorShadow);
getPaint().setShader(null);
super.onDraw(canvas);
}
if (colorStartGradient != -2 && colorEndGradient != -2)
{
getPaint().clearShadowLayer();
getPaint().setShader(
new LinearGradient(0, 0, 0, getHeight(), colorStartGradient,
colorEndGradient, TileMode.MIRROR));
}
super.onDraw(canvas);
}
}</pre>
</div>
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h4>
<ul>
<li><span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;">The
source codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b15/GradientTextView.zip">zip</a></span></li>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com1tag:blogger.com,1999:blog-6116172484948741564.post-12864054953790382192013-02-21T22:05:00.000+04:002013-02-23T23:07:20.372+04:00Interface: Custom Toast (Part 2)<div>
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Customization interface: Toast (Part 2)" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Customization interface: Toast (Part 2)" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In the
previous article I talked about how to change the Toast interface and regulate
the time display on the screen. </span>Today I'll show how to close Toast <span style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>by
clicking<span lang="EN-US" style="mso-ansi-language: EN-US;">.</span><br />
<br />
<br />
<br />
<a name='more'></a></div>
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Practice</span></b></h4>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Unfortunately,
the track at the click of the Toast does not work, because it is not active for
user interaction. We will resort to tricks, and instead Toast will use
PopupWindow. This pop-up window you can customize as well as Toast, but unlike
him, PopupWindow can catch the user clicking.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">PopupWindow
has several options for displaying:</span></div>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">showAtLocation(View
parent, </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> gravity, </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> x, </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> y)</span><span lang="EN-US" style="mso-ansi-language: EN-US;">: display the content view in a popup window at the specified location.</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">showAsDropDown(View
anchor)</span><span lang="EN-US" style="mso-ansi-language: EN-US;">: display the
content view in a popup window anchored to the bottom-left corner of the anchor
view.</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">showAsDropDown(View
anchor, </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> xoff, </span><b><span lang="EN-US" style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">int</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> yoff)</span><span lang="EN-US" style="mso-ansi-language: EN-US;">: display the
content view in a popup window anchored to the bottom-left corner of the anchor
view offset by the specified x and y coordinates.</span></div>
</li>
</ul>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">As the
working project will use a project created in a previous <a href="http://snowpard-android.blogspot.ru/2013/02/customization-interface-toast-part-1.html">article</a>.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Change the
class CustomToast to work with PopupMenu.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add a
static attribute, which indicates: displayed or not PopupWindow..</span></div>
<pre class="brush: java">private static boolean isShow = false;</pre>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Also add a
Listener when triggered which is closing PopupWIndow.</span><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private static OnClickListener listner = new OnClickListener() {
@Override
public void onClick(View v) {
isShow = false;
}
};</pre>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Change the
method makeToast. PopupWindow needs to View, concerning which it will be displayed.</span><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">public static void makeToast(Context context, View contentView, String msg, long duration) {
if (isShow)
return;
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.layout_toast, null);
view.setOnClickListener(listner);
((TextView) view.findViewById(R.id.text)).setText(msg);
showToast(context, contentView, view, duration);
}
public static void makeToast(Context context, View contentView, int msg, long duration) {
if (isShow)
return;
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.layout_toast, null);
((TextView) view.findViewById(R.id.text)).setText(msg);
view.setOnClickListener(listner);
showToast(context, contentView, view, duration);
}</pre>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Completely
changed the method showToast, which will create our PopupWindow. To our pop-up
window stretched across the width of the window at all, and the height adjusts
to the TextView, using constants</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> ViewGroup.LayoutParams.</span><i><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">MATCH_PARENT</span></i><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">and </span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">ViewGroup.LayoutParams.</span><i><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">WRAP_CONTENT</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private static void showToast(Context context, View contentView, View view, long duration) {
PopupWindow window = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, false);
show(context, contentView, duration * 1000, window);
}</pre>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Modified method for displaying PopupWindow. To
display a pop-up window in the lower part of the screen is used constant</span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-size: 10.0pt;"> </span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Gravity.</span><i><span lang="EN-US" style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">BOTTOM</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;">.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private static void show(Context context, final View contentView, final long durationInMilliseconds,
final PopupWindow window) {
window.showAtLocation(contentView, Gravity.BOTTOM, 0, 0);
Thread t = new Thread() {
long timeElapsed = 0l;
public void run() {
try {
isShow = true;
while (timeElapsed <= durationInMilliseconds && isShow) {
long start = System.currentTimeMillis();
sleep(250);
timeElapsed += System.currentTimeMillis() - start;
}
isShow = false;
window.dismiss();
} catch (InterruptedException e) {
}
}
};
t.start();
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now
slightly change the layout for the main window. Add the ID for the main Layout
window to PopupWindow appear for him.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">S</span>ource
code (main.xml)</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">LinearLayout</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/toast_layout_root"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:layout_width</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"fill_parent"</span></i></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/toast"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"horizontal"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:padding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"8dp"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/text"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginBottom</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"5dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:padding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"8dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textColor</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"#FFF"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"14sp"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
main Activity with changes:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;">
<pre class="brush: java">private EditText ed_txt, ed_time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ed_time = (EditText)findViewById(R.id.ed_time);
ed_txt = (EditText)findViewById(R.id.ed_txt);
final Context context = this;
final View contentView = findViewById(R.id.main);
findViewById(R.id.btn_show).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int duration = 1;
try
{
duration = Integer.parseInt(ed_time.getText().toString());
} catch (Exception e) {
}
CustomToast.makeToast(context, contentView, ed_txt.getText().toString(), duration);
}
});
}</pre>
</div>
<h4>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h4>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b14/part2/CustomToast2.zip">zip</a></span></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-20061897465509777632013-02-20T15:48:00.000+04:002013-02-23T23:07:31.044+04:00Interface: Custom Toast (Part 1)<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Customization interface: Toast (Part 1)" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Customization interface: Toast (Part 1)" /></a></div>
<div class="MsoNormal">
Today we
talk about Toast. An important limitation of this element is that it display
time, which is not regulated. In this article I will show how to display Toast
with a specified time.<br />
<br />
<br /></div>
<div class="MsoNormal">
</div>
<a name='more'></a><b><span lang="EN-US"><br /></span></b>
<br />
<h4>
<b><span lang="EN-US">Practice</span></b></h4>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">This article will solve two questions: </span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
</div>
<ul>
<li>customization; </li>
<li>control display time. </li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik0coGCKo3sufu2p2HL6H_QD0j6-oIVnpbI3sdbGkaXeuqkq0T_Xa1S0esmNly1scDIsTgTQT56dMORluuejQ8fnv6mfo2JAH6I3PohMAqZ8MTiNZhV77x2-ONSfqpFLlifHDIn4ZclYTP/s1600/device-2013-02-20-081338.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customization interface: Toast (Part 1)" border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik0coGCKo3sufu2p2HL6H_QD0j6-oIVnpbI3sdbGkaXeuqkq0T_Xa1S0esmNly1scDIsTgTQT56dMORluuejQ8fnv6mfo2JAH6I3PohMAqZ8MTiNZhV77x2-ONSfqpFLlifHDIn4ZclYTP/s320/device-2013-02-20-081338.png" title="Customization interface: Toast (Part 1)" width="192" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">We require the following string
resources:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"app_name"</span></i><span style="color: teal;">></span>CustomToast<span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"placeholder_txt"</span></i><span style="color: teal;">></span>Enter message<span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"placeholder_time"</span></i><span style="color: teal;">></span>Enter display time<span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"btn_show"</span></i><span style="color: teal;">></span>Show<span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">resources</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span><b><span lang="EN-US"><o:p></o:p></span></b></div>
</div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">To change
the interface Toast, has developed a new layout using as background the
following image: </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-qUNrdrYjx_0/USS1gzCfbvI/AAAAAAAAAiU/60VvVwrNzes/s1600/toast.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-qUNrdrYjx_0/USS1gzCfbvI/AAAAAAAAAiU/60VvVwrNzes/s1600/toast.9.png" /></a></div>
<div class="MsoNormal">
Our Toast will appear as a standard, but you can manipulate
the interface you want.</div>
<div class="MsoNormal">
<span lang="EN-US">Source code
(layout_toast.xml)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/toast_layout_root"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:background</span>=<i><span style="color: #2a00ff;">"@drawable/toast"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:orientation</span>=<i><span style="color: #2a00ff;">"horizontal"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:padding</span>=<i><span style="color: #2a00ff;">"8dp"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">TextView</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/text"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_marginBottom</span>=<i><span style="color: #2a00ff;">"5dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:gravity</span>=<i><span style="color: #2a00ff;">"center"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:padding</span>=<i><span style="color: #2a00ff;">"8dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:textColor</span>=<i><span style="color: #2a00ff;">"#FFF"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:textSize</span>=<i><span style="color: #2a00ff;">"14sp"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span><b><span lang="EN-US"><o:p></o:p></span></b></div>
</div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Develop a
new class that will regulate display time Toast: CustomToast.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Add a
static method, which shows Toast with a specified time.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br />
<pre class="brush: java">private static void show(final long durationInMilliseconds,
final Toast toast) {
Thread t = new Thread() {
long timeElapsed = 0l;
public void run() {
try {
while (timeElapsed <= durationInMilliseconds) {
long start = System.currentTimeMillis();
toast.show();
sleep(250);
timeElapsed += System.currentTimeMillis() - start;
}
} catch (InterruptedException e) {
}
}
};
t.start();
}</pre>
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Also, we
need a static method that will create a Toast to the desired layout.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br />
<pre class="brush: java">private static void showToast(Context context, View view, long duration) {
Toast toast = new Toast(context);
toast.setView(view);
toast.setDuration(Toast.LENGTH_SHORT);
show(duration * 1000, toast);
}</pre>
</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
</div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">The final
part of the development of the new class are the methods that will create and
display customized Toast with the specified text and time.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">The details
shall include:<o:p></o:p></span></div>
<div class="MsoNormal">
</div>
<ul>
<li>message
(can be a string (String), or the ID of the resource string (int));</li>
<li>display
time Toast (in seconds).</li>
</ul>
<pre class="brush: java">public static void makeToast(Context context, String msg, long duration) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.layout_toast, null);
((TextView) view.findViewById(R.id.text)).setText(msg);
showToast(context, view, duration);
}
public static void makeToast(Context context, int msg, long duration) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.layout_toast, null);
((TextView) view.findViewById(R.id.text)).setText(msg);
showToast(context, view, duration);
}</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span>
<span lang="EN-US">Now develop
a layout for the main screen to test creating class. Screen interface will
consist: two EditText (custom message and display time) and button to show
Toast.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source Code (main.xml)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:orientation</span>=<i><span style="color: #2a00ff;">"vertical"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">EditText</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/ed_txt"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:hint</span>=<i><span style="color: #2a00ff;">"@string/placeholder_txt"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">EditText</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/ed_time"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:hint</span>=<i><span style="color: #2a00ff;">"@string/placeholder_time"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">Button</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/btn_show"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:hint</span>=<i><span style="color: #2a00ff;">"@string/btn_show"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span><b><span lang="EN-US"><o:p></o:p></span></b></div>
</div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
of the main Activity.<o:p></o:p></span></div>
<pre class="brush: java">private EditText ed_txt, ed_time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ed_time = (EditText)findViewById(R.id.ed_time);
ed_txt = (EditText)findViewById(R.id.ed_txt);
final Context context = this;
findViewById(R.id.btn_show).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int duration = 1;
try
{
duration = Integer.parseInt(ed_time.getText().toString());
} catch (Exception e) {
}
CustomToast.makeToast(context, ed_txt.getText().toString(), duration);
}
});
}</pre>
<div class="MsoNormal">
<b><span lang="EN-US"><br /></span></b></div>
<h4>
<b><span lang="EN-US">Links</span></b></h4>
<div class="MsoNormal">
<br />
<ul>
<li>The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b14/part1/CustomToast1.zip">zip</a></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-7278080471673166892013-02-13T15:27:00.000+04:002013-02-23T23:07:39.223+04:00Interface: Custom Progress Bar<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Customization interface: Progress Bar" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Customization interface: Progress Bar" /></a></div>
<div class="MsoNormal">
Today we
will customize element Spinning Wheel. This article will be covered three ways
to change the element.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br />
<br /></div>
<div class="MsoNormal">
</div>
<a name='more'></a><b>Practice</b><br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
For one of the methods of customization require
resources. Create an xml file for the color. These resources will set the
gradient for our spinning wheel.</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Source code </span>(<span lang="EN-US">colors</span>.<span lang="EN-US">xml</span>)</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"color_preloader_start"</span></i><span style="color: teal;">></span>#000000<span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"color_preloader_center"</span></i><span style="color: teal;">></span>#000000<span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">color</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span>=<i><span style="color: #2a00ff;">"color_preloader_end"</span></i><span style="color: teal;">></span>#ff56a9c7<span style="color: teal;"></</span><span style="color: #3f7f7f;">color</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">resources</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span></div>
<ul>
<li><b><span lang="EN-US">F</span>irst
way. Using Shape</b></li>
</ul>
Create
forms for the rotation is limited only by your imagination. This article will
be examined only two forms: oval and ring.<br />
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">1. Oval</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-HFaVKiRt67s/URt1ZFkSOvI/AAAAAAAAAeE/G9iAsAQY3ds/s1600/screen_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customization interface: Progress Bar" border="0" height="320" src="http://3.bp.blogspot.com/-HFaVKiRt67s/URt1ZFkSOvI/AAAAAAAAAeE/G9iAsAQY3ds/s320/screen_2.png" title="Customization interface: Progress Bar" width="192" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Source code </span>(<span lang="EN-US">loader</span>_0_1.<span lang="EN-US">xml</span>)</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">rotate</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromDegrees</span>=<i><span style="color: #2a00ff;">"0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:pivotX</span>=<i><span style="color: #2a00ff;">"50%"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:pivotY</span>=<i><span style="color: #2a00ff;">"50%"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toDegrees</span>=<i><span style="color: #2a00ff;">"360"</span></i> <span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">shape</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:shape</span>=<i><span style="color: #2a00ff;">"oval"</span></i> <span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">gradient</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:centerColor</span>=<i><span style="color: #2a00ff;">"@color/color_preloader_center"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:centerY</span>=<i><span style="color: #2a00ff;">"0.50"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:endColor</span>=<i><span style="color: #2a00ff;">"@color/color_preloader_end"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:startColor</span>=<i><span style="color: #2a00ff;">"@color/color_preloader_start"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:type</span>=<i><span style="color: #2a00ff;">"sweep"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">shape</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">rotate</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><b><span lang="EN-US"><o:p></o:p></span></b></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">rotate</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span><span lang="EN-US">allows our form to
rotate from 0 to 360 degrees with a pivot point at the center of the figure.
Our figure is filled sweep gradient. The gradient is given by three colors and
starts in the center of the figure is painted over.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
2. <span lang="EN-US">Ring</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-NaYQ_K_NfPw/URt1asKN53I/AAAAAAAAAeQ/TZQRovKCA14/s1600/screen_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customization interface: Progress Bar" border="0" height="320" src="http://3.bp.blogspot.com/-NaYQ_K_NfPw/URt1asKN53I/AAAAAAAAAeQ/TZQRovKCA14/s320/screen_1.png" title="Customization interface: Progress Bar" width="192" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Source code </span>(<span lang="EN-US">loader</span>_0.<span lang="EN-US">xml</span>)</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">rotate</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:fromDegrees</span>=<i><span style="color: #2a00ff;">"0"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:pivotX</span>=<i><span style="color: #2a00ff;">"50%"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:pivotY</span>=<i><span style="color: #2a00ff;">"50%"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:toDegrees</span>=<i><span style="color: #2a00ff;">"360"</span></i> <span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">shape</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:innerRadiusRatio</span>=<i><span style="color: #2a00ff;">"3"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:shape</span>=<i><span style="color: #2a00ff;">"ring"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:thicknessRatio</span>=<i><span style="color: #2a00ff;">"8"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:useLevel</span>=<i><span style="color: #2a00ff;">"false"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">gradient</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:centerColor</span>=<i><span style="color: #2a00ff;">"@color/color_preloader_center"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:centerY</span>=<i><span style="color: #2a00ff;">"0.50"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:endColor</span>=<i><span style="color: #2a00ff;">"@color/color_preloader_end"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:startColor</span>=<i><span style="color: #2a00ff;">"@color/color_preloader_start"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:type</span>=<i><span style="color: #2a00ff;">"sweep"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:useLevel</span>=<i><span style="color: #2a00ff;">"false"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">shape</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">></span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">rotate</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">For the ring you must set the following
parameters:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:innerRadiusRatio </span><span lang="EN-US">– inner radius of the ring</span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:thicknessRatio </span><span lang="EN-US">– thickness of the ring<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:useLevel</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"false" </span></i><span lang="EN-US">– Indicates whether the drawable's level
affects the way the gradient is drawn.</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><o:p></o:p></span></i></div>
<ul>
<li><b>Second way: Rotating an image</b></li>
</ul>
This method uses a pre-built image to rotate.<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Wu7XKD-HMbU/URt1amf_UQI/AAAAAAAAAeU/Z-ujGqsRTvk/s1600/screen_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customization interface: Progress Bar" border="0" height="320" src="http://1.bp.blogspot.com/-Wu7XKD-HMbU/URt1amf_UQI/AAAAAAAAAeU/Z-ujGqsRTvk/s320/screen_3.png" title="Customization interface: Progress Bar" width="192" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="text-align: justify;">Example images (</span><a href="http://www.snowpard.org/examples/article_b13/images.zip" style="text-align: justify;">download</a><span style="text-align: justify;">):</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC4t1snKYcXUvOuJoGYOQ2f6Bdhs2Qmk8zZzgzfHDa_kWp2zvLH0PL118_Gw6zmyuzTbNRKViWf5yriabhDeIXNz_XAEM5yeT1SxZxp5mu6-I_SxRgrHdgFSMx6FGA3wRUjG9inqW1nqAQ/s1600/preloader_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC4t1snKYcXUvOuJoGYOQ2f6Bdhs2Qmk8zZzgzfHDa_kWp2zvLH0PL118_Gw6zmyuzTbNRKViWf5yriabhDeIXNz_XAEM5yeT1SxZxp5mu6-I_SxRgrHdgFSMx6FGA3wRUjG9inqW1nqAQ/s1600/preloader_3.png" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ97f71kyKMiLfN5kL8v3gO3vbczCzgjdFdzWuG64fNravd6diDKYlojzT9Ask-7ojmLwqCxduhyphenhyphenl3QA2cAsdmKBcG2ilcYvGdEpafMlqGrukfCCnEJV2ULDXkfeufL7ZAckAo6IA2F8td/s1600/preloader_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ97f71kyKMiLfN5kL8v3gO3vbczCzgjdFdzWuG64fNravd6diDKYlojzT9Ask-7ojmLwqCxduhyphenhyphenl3QA2cAsdmKBcG2ilcYvGdEpafMlqGrukfCCnEJV2ULDXkfeufL7ZAckAo6IA2F8td/s1600/preloader_2.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-AWZXUpjsmaQ/URt3Ab2HJXI/AAAAAAAAAfY/WVguoRGZLWo/s1600/preloader_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-AWZXUpjsmaQ/URt3Ab2HJXI/AAAAAAAAAfY/WVguoRGZLWo/s1600/preloader_1.png" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI5MOxERqVKO00VsIGaaJxZfl-HEIEEvYneqr_WWqn-UZXock7g8yc7f2-_Htcp_rbHPG3YUFkpPBQprnfPWH2nRwLA94dGa54Q4jsJGvBJP7u5VTdgNitfo9ytFuTthIur8NvuQ0WNxOY/s1600/preloader_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI5MOxERqVKO00VsIGaaJxZfl-HEIEEvYneqr_WWqn-UZXock7g8yc7f2-_Htcp_rbHPG3YUFkpPBQprnfPWH2nRwLA94dGa54Q4jsJGvBJP7u5VTdgNitfo9ytFuTthIur8NvuQ0WNxOY/s1600/preloader_4.png" /></a></div>
<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Source code (loader_1.xml)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">animated-rotate</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span>=<i><span style="color: #2a00ff;">"@drawable/preloader"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:pivotX</span>=<i><span style="color: #2a00ff;">"50%"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> </span><span style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">android:pivotY</span><span style="font-family: Consolas; font-size: 10pt;">=</span><i><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">"50%"</span></i><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
</div>
<ul>
<li><b>Third way: frame animation</b></li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-gbAJtOnuABI/URt1aspeXRI/AAAAAAAAAeM/msrcQtxx16Y/s1600/screen_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customization interface: Progress Bar" border="0" height="320" src="http://2.bp.blogspot.com/-gbAJtOnuABI/URt1aspeXRI/AAAAAAAAAeM/msrcQtxx16Y/s320/screen_4.png" title="Customization interface: Progress Bar" width="192" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;">
Example images (<a href="http://www.snowpard.org/examples/article_b13/images.zip">download</a>):</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkQsvYIHEUOQpOgGmpi5bJCduB2P6J98U9Lm5RiwJxYA3LhnAbR3duQrV6mePQfcspHHBEtMp4xOI3df3acZOKgIpMcg4FoYWx_okm7vME3UWHBmEl_Xefs8pFHQ35h_pApaY3BMfEYtzH/s1600/progress_5.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkQsvYIHEUOQpOgGmpi5bJCduB2P6J98U9Lm5RiwJxYA3LhnAbR3duQrV6mePQfcspHHBEtMp4xOI3df3acZOKgIpMcg4FoYWx_okm7vME3UWHBmEl_Xefs8pFHQ35h_pApaY3BMfEYtzH/s1600/progress_5.png" /></a><a href="http://2.bp.blogspot.com/-Nf43956e5Bg/URt2pYtxKiI/AAAAAAAAAeo/iATLyjp1DVY/s1600/progress_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-Nf43956e5Bg/URt2pYtxKiI/AAAAAAAAAeo/iATLyjp1DVY/s1600/progress_1.png" /></a><a href="http://3.bp.blogspot.com/-P6oyuk_5flE/URt2pQT53SI/AAAAAAAAAes/30pV5c2vhlo/s1600/progress_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-P6oyuk_5flE/URt2pQT53SI/AAAAAAAAAes/30pV5c2vhlo/s1600/progress_3.png" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bBBf2GWTiojdKXp1XA-ynStMEjgVi8-WtxyXc14gnVtm7SXqkT43eKwaIirYK5tTKksDG7FCUj045Tv-nvcod4qDrooj2vy2fEOuHE8N_4tXIO3gtvgnF4piyt7ZNqzpAISWOF0hf40i/s1600/progress_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bBBf2GWTiojdKXp1XA-ynStMEjgVi8-WtxyXc14gnVtm7SXqkT43eKwaIirYK5tTKksDG7FCUj045Tv-nvcod4qDrooj2vy2fEOuHE8N_4tXIO3gtvgnF4piyt7ZNqzpAISWOF0hf40i/s1600/progress_2.png" /></a><a href="http://4.bp.blogspot.com/-Q0sBKQYsZaw/URt2pynTS3I/AAAAAAAAAe0/imeuOmEoxU0/s1600/progress_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-Q0sBKQYsZaw/URt2pynTS3I/AAAAAAAAAe0/imeuOmEoxU0/s1600/progress_4.png" /></a></div>
<br />
In that case, when our spinning wheel can not
be animated by a rotation, you can use frame animation.<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US"><b>Note</b>: The size of the element must be equal to
or greater than used images.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Source code (loader_2.xml)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">animation-list</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span>=<i><span style="color: #2a00ff;">"@drawable/progress_1"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"200"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span>=<i><span style="color: #2a00ff;">"@drawable/progress_2"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"200"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span>=<i><span style="color: #2a00ff;">"@drawable/progress_3"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"200"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span>=<i><span style="color: #2a00ff;">"@drawable/progress_4"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"200"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span>=<i><span style="color: #2a00ff;">"@drawable/progress_5"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:duration</span>=<i><span style="color: #2a00ff;">"200"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">animation-list</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span><b><span lang="EN-US"><o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">android:duration
</span><span lang="EN-US">– time display the
current frame.</span><span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Now we will place all our items on the screen.
To customize the ProgressBar, you must use the attribute</span><span lang="EN-US"> </span><span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">android:indeterminateDrawable.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Source code (main.xml)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"match_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:orientation</span>=<i><span style="color: #2a00ff;">"vertical"</span></i>
<span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">ProgressBar</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"100dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"100dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:indeterminateDrawable</span>=<i><span style="color: #2a00ff;">"@drawable/loader_0"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">ProgressBar</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"100dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"100dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:indeterminateDrawable</span>=<i><span style="color: #2a00ff;">"@drawable/loader_0_1"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">ProgressBar</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"100dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"100dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:indeterminateDrawable</span>=<i><span style="color: #2a00ff;">"@drawable/loader_1"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10pt;"> </span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">ProgressBar</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"119dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"119dp"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:indeterminateDrawable</span>=<i><span style="color: #2a00ff;">"@drawable/loader_2"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;">></span><b><o:p></o:p></b><br />
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Consolas; mso-fareast-language: RU;"><br /></span></div>
<h4>
<b><span lang="EN-US">Links</span></b></h4>
<div class="MsoNormal">
<ul>
<li>The source
codes of this project can be downloaded here: <a href="http://www.snowpard.org/examples/article_b13/CustomProgressDialog.zip">zip</a></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com1tag:blogger.com,1999:blog-6116172484948741564.post-45421277919559450752013-01-21T22:20:00.000+04:002013-01-21T22:20:08.904+04:00Planning: Flying cells<div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Planning: Flying cells" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" title="Planning: Flying cells" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">The last
article in the series on customizing ListView. This time, animating the change
of the selected item. </span>In this article, we will develop a flying cell.</div>
</div>
<br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b>
<br />
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><a name='more'></a></span></b></h3>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Practice</span></b></h3>
<div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-ea-0TL7uIyA/UP2FmrpLvNI/AAAAAAAAAds/3y9cOQi8CWs/s1600/device-2013-01-21-103443.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/-ea-0TL7uIyA/UP2FmrpLvNI/AAAAAAAAAds/3y9cOQi8CWs/s200/device-2013-01-21-103443.png" width="132" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">To animate
flying cells need to change the layout main.xml, which is our ListView. Add the
ImageView, which will act as a flying cell. We will use this idea on because
animate View the item itself, as we did in the previous article, we did not
succeed. Because each cell of the list Is located under each other, and when you
move down the upper cells, they will overlap the bottom cell. </span></div>
<div class="MsoNormal">
Исходный код (<span lang="EN-US" style="mso-ansi-language: EN-US;">main</span>.<span lang="EN-US" style="mso-ansi-language: EN-US;">xml</span>)</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">FrameLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"> </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xmlns</span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">:</span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">http</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">://</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">schemas</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">.</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">.</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">com</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">/</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">apk</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">/</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">res</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">/</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"</span></i></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:layout_width</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"match_parent"</span></i></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:color/white"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">ListView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/listview"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:cacheColorHint</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:color/transparent"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">ImageView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/flyingCell"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:visibility</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"gone"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">FrameLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add the
necessary attributes in Activity.</span></div>
<pre class="brush: java">// Messages for Handler
public static final int MSG_ANIMATION_FLY = 3;
// Stores the size of the screen
private DisplayMetrics dm = new DisplayMetrics();
// Flying cell
private ImageView flying_cell;</pre>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">In the
method onCreate() add initialization ImageView and DisplayMetrics.</span></div>
<pre class="brush: java">flying_cell = (ImageView)findViewById(R.id.flyingCell);
getWindowManager().getDefaultDisplay().getMetrics(dm);</pre>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Develop a
method in our Activity, that will perform the movement of the selected item
from its current position to a specified.</span></div>
<pre class="brush: java"> /**
* Starting animation flying cell
*/
private void startFly(Bitmap cellBitmap, Point start, Point end, ToDoItem item)
{
flying_cell.setVisibility(View.VISIBLE);
flying_cell.setImageBitmap(cellBitmap);
TranslateAnimation translateAnimation = new TranslateAnimation(start.x, end.x, start.y, end.y);
translateAnimation.setStartOffset(100);
translateAnimation.setDuration(700);
translateAnimation.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.accelerate_decelerate_interpolator));
/*
This uses AnimationSet, so you can add some moreanimation
(for example, first to zoom in the cell, and then move to reduce normal size)
*/
AnimationSet spriteAnimation = new AnimationSet(true);
spriteAnimation.addAnimation(translateAnimation);
spriteAnimation.setAnimationListener(new FlyAnimationListenter());
flying_cell.startAnimation(spriteAnimation);
}</pre>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Our task is
to keep track of the ending animation, and then update the list.</span></div>
<pre class="brush: java"> /**
* Listenter used to update the list after the cell has arrived to the desired position
*/
public class FlyAnimationListenter implements Animation.AnimationListener
{
@Override
public void onAnimationEnd(Animation arg0)
{
getHandler().sendEmptyMessage(MSG_CHANGE_ITEM);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
}</pre>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">As well add
a method that allows you to determine whether the animation is running or not.
This is to ensure that same time can be done only one animation.</span></div>
<pre class="brush: java"> /**
* Animation is running or not
*/
public boolean isAnimationStarted()
{
return flying_cell.isShown();
}</pre>
</div>
<div>
<br />
В In Handler add additional case. The idea of flying cells is the following algorithm.When you select a cell, we obtain its image (Bitmap). Next are counting the initial position of the cell as the top point of list + height of the first cell + total height of all the cells that go to the selected cell. Then you sort the list and calculate the same formula the final position. After <span lang="EN-US" style="mso-ansi-language: EN-US;">correct the end point with the size of the
screen and execute the animation.</span>
<br />
<pre class="brush: java"> ...
case MSG_CHANGE_ITEM: // Animation is complete of flying cells
flying_cell.setVisibility(View.GONE);
adapter.notifyDataSetChanged();
setCountPurchaseProduct();
break;
...
case MSG_ANIMATION_FLY: // Start animation flying cells
Bitmap cellBitmap = (Bitmap)msg.obj;
ToDoItem item = list.get(msg.arg1);
item.setCheck(!item.isCheck());
Point startPoint, endPoint;
/*
We need the following values to find the position:
height = Height of one cell
header_height = Height Header's list (just the height of the first cell in the list)
listTop = highest point of the list - the size of scroll area
*/
int height = listview.getChildAt(1).getHeight();
int header_height = listview.getChildAt(0).getBottom();
int listTop = listview.getTop() - height * listview.getFirstVisiblePosition();
/*
Searching for the starting and the end point is the following algorithm:
1. The starting point: the top point of list + height of the first cell + total height of all the cells that go to the selected cell
2. Sort the list according to the new position of the selected cell
3. Find the end point: high point list + height of the first cell + total height of all the cells that go to the selected cell
*/
startPoint = new Point(0, listTop + header_height + height * getPositionInList(item.getIndex()));
Utils.sorting(list, 0);
saveList();
endPoint = new Point(0, listTop + header_height + height * getPositionInList(item.getIndex()));
// Correct the end point with the size of the screen
if (endPoint.y > dm.heightPixels)
endPoint.y = dm.heightPixels;
else if (endPoint.y < -1*height)
endPoint.y = -1*height;
// If the cell changes position, the start animation
if (endPoint.y != startPoint.y)
startFly(cellBitmap, startPoint, endPoint, item);
else
handler.sendEmptyMessage(MSG_CHANGE_ITEM);
break;</pre>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now you
need to change all the methods that are used to select the item in accordance
with the new changes:</span></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">method onItemClickListener() for Listview:</span></li>
</ul>
</div>
<pre class="brush: java"> listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position,
long id) {
// If there is a tap on the Header or Footer or animation is running, do not do anything
if (position == 0 || position == list.size() + 1 || isAnimationStarted())
return;
Message msg = new Message();
msg.arg1 = position - 1;
// If was detected swipe we delete an item
if (swipeDetector.swipeDetected()){
if (swipeDetector.getAction() == SwipeDetector.Action.LR ||
swipeDetector.getAction() == SwipeDetector.Action.RL)
{
msg.what = MSG_ANIMATION_REMOVE;
msg.arg2 = swipeDetector.getAction() == SwipeDetector.Action.LR ? 1 : 0;
msg.obj = view;
}
}
// Otherwise, select an item
else
{
view.setDrawingCacheEnabled(true);
Bitmap cellBitmap = view.getDrawingCache().copy(Config.ARGB_8888, false);
view.setVisibility(View.INVISIBLE);
msg.obj = cellBitmap;
msg.what = MSG_ANIMATION_FLY;
}
handler.sendMessage(msg);
}
});</pre>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">method
OnClickListener() for CheckBox in the class CustomListAdapter:</span></li>
</ul>
</div>
<pre class="brush: java">final View tmp = v;
listitem_check.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (((MainActivity)context).isAnimationStarted())
return;
tmp.setDrawingCacheEnabled(true);
Bitmap cellBitmap = tmp.getDrawingCache().copy(Config.ARGB_8888, false);
tmp.setVisibility(View.INVISIBLE);
Message msg = new Message();
msg.obj = cellBitmap;
msg.arg1 = position;
msg.what = MainActivity.MSG_ANIMATION_FLY;
((MainActivity)context).getHandler().sendMessage(msg);
}
});</pre>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;">Links</b></h3>
<div>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
of the project: <a href="http://www.snowpard.org/examples/article_b12/parts/p4/en/CustomListViewP4.zip">zip</a> </span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Planning</span>:
<a href="http://snowpard-android.blogspot.ru/2013/01/planning-customization-listview.html"><span lang="EN-US">Part </span>1</a>, <span lang="EN-US"><a href="http://snowpard-android.blogspot.ru/2013/01/planning-saving-and-loading-list.html">Part 2</a></span>, <a href="http://snowpard-android.blogspot.ru/2013/01/planning-swipe-animation-remove-items.html">Part 3</a> </div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Finished
project: <a href="http://www.snowpard.org/examples/article_b12/CustomListView.apk">apk</a></span></div>
</li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-87423305336097974942013-01-20T00:07:00.001+04:002013-01-21T22:21:03.361+04:00Planning: Swipe. Animation remove items<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Planning: Swipe. Animation remove items" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" title="Planning: Swipe. Animation remove items" /></a></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span lang="EN-US">We continue
the series of articles on the development of applications for planning cases.
Today, we will improve the usability of our list due to comfortable and
animated removing items.<o:p></o:p></span><br />
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<a name='more'></a><h3>
<b><span lang="EN-US">Practice</span></b></h3>
<div class="MsoNormal">
<span lang="EN-US">In today's
article we will solve two problems:<o:p></o:p></span></div>
<div class="MsoNormal">
</div>
<ul>
<li>swipe detection
on the item;</li>
<li>view animating.</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-bIho9ewuntM/UPr6gRxZwII/AAAAAAAAAcw/3dYNAhluMx8/s1600/device-2013-01-19-114959.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/-bIho9ewuntM/UPr6gRxZwII/AAAAAAAAAcw/3dYNAhluMx8/s200/device-2013-01-19-114959.png" width="131" /></a><a href="http://1.bp.blogspot.com/-UcB4MlggDLk/UPr6gYmQ0UI/AAAAAAAAAc0/IvvmMaC1kgg/s1600/device-2013-01-19-114950.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-UcB4MlggDLk/UPr6gYmQ0UI/AAAAAAAAAc0/IvvmMaC1kgg/s200/device-2013-01-19-114950.png" width="133" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
1. Swipe
detection.</div>
In order to
determine what movement made by the user, developed class SwipeDetector,
which will implement the interface View.OnTouchListener. This class will be
universal, that is possible to determine the swipe in all four directions (top
to bottom, bottom to top, left to right, right to left).<br />
<div class="MsoNormal">
<span lang="EN-US">The minimum
distance for swipe establish the following:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">- horizontal
swipe: 100 px;<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">- vertical swipe:
80 px.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">All the
idea is to determine the difference between the start and end coordinates and
compared with a minimum distance.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Source code
(SwipeDetector):<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<pre class="brush: java">/**
* Class swipe detection to View
*/
public class SwipeDetector implements View.OnTouchListener {
public static enum Action {
LR, // Left to right
RL, // Right to left
TB, // Top to bottom
BT, // Bottom to top
None // Action not found
}
private static final int HORIZONTAL_MIN_DISTANCE = 100; // The minimum distance for horizontal swipe
private static final int VERTICAL_MIN_DISTANCE = 80; // The minimum distance for vertical swipe
private float downX, downY, upX, upY; // Coordinates
private Action mSwipeDetected = Action.None; // Last action
public boolean swipeDetected() {
return mSwipeDetected != Action.None;
}
public Action getAction() {
return mSwipeDetected;
}
/**
* Swipe detection
*/
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
downX = event.getX();
downY = event.getY();
mSwipeDetected = Action.None;
return false;
}
case MotionEvent.ACTION_MOVE: {
upX = event.getX();
upY = event.getY();
float deltaX = downX - upX;
float deltaY = downY - upY;
// Detection of horizontal swipe
if (Math.abs(deltaX) > HORIZONTAL_MIN_DISTANCE) {
// Left to right
if (deltaX < 0) {
mSwipeDetected = Action.LR;
return true;
}
// Right to left
if (deltaX > 0) {
mSwipeDetected = Action.RL;
return true;
}
} else
// Detection of vertical swipe
if (Math.abs(deltaY) > VERTICAL_MIN_DISTANCE) {
// Top to bottom
if (deltaY < 0) {
mSwipeDetected = Action.TB;
return false;
}
// Bottom to top
if (deltaY > 0) {
mSwipeDetected = Action.BT;
return false;
}
}
return true;
}
}
return false;
}
}</pre>
</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Following
the development of the class, this Listener must be set for View.<o:p></o:p></span></div>
<pre class="brush: java">final SwipeDetector swipeDetector = new SwipeDetector();
listview.setOnTouchListener(swipeDetector);</pre>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
2. Animation remove items</div>
<div class="MsoNormal">
<span lang="EN-US">For
animation, we will use the class Animation (android.view.animation. Animation).
This class allows you to animate View, using a variety of information such as
the start and end position of the item, size, rotation, and more.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Develop a
method in our Activity, that will perform the movement of our element from its
present location at the edge of the screen. TranslateAnimation class allows you
to animate moving from one point to another.</span></div>
<pre class="brush: java"> /**
* Starting animation remove
*/
private Animation getDeleteAnimation(float fromX, float toX, int position)
{
Animation animation = new TranslateAnimation(fromX, toX, 0, 0);
animation.setStartOffset(100);
animation.setDuration(800);
animation.setAnimationListener(new DeleteAnimationListenter(position));
animation.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.anticipate_overshoot_interpolator));
return animation;
}</pre>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Our task is
to keep track of the ending animation, and then removing item and updating the list.
It uses an interface Animation.AnimationListener. It allows you to keep track
of the beginning, the end and repeat the animation.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Add the
following code in our Activity. Position attribute is used to store the
position of the deleted item.<o:p></o:p></span></div>
<pre class="brush: java"> /**
* Listenter used to remove an item after the animation has finished remove
*/
public class DeleteAnimationListenter implements Animation.AnimationListener
{
private int position;
public DeleteAnimationListenter(int position)
{
this.position = position;
}
@Override
public void onAnimationEnd(Animation arg0) {
removeItem(position);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
}</pre>
<span style="color: #3f5fbf; font-family: Consolas; font-size: x-small;"><br /></span>
<br />
<div class="MsoNormal">
<span lang="EN-US">Now add the
main logic for removing an element of animation in our Activity.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Add
additional static attribute - message to Handler:<o:p></o:p></span></div>
<pre class="brush: java">public static final int MSG_ANIMATION_REMOVE = 2;</pre>
<div class="MsoNormal">
<span lang="EN-US">In Handler
add additional case (msg.arg2 shows in which direction you want to animate
View):<o:p></o:p></span></div>
<pre class="brush: java"> case MSG_ANIMATION_REMOVE: // Start animation removing
View view = (View)msg.obj;
view.startAnimation(getDeleteAnimation(0, (msg.arg2 == 0) ? -view.getWidth() : 2 * view.getWidth(), msg.arg1));
break;</pre>
<div class="MsoNormal">
<span lang="EN-US">We extend
the method of OnItemClickListener() for Listview. If swipe been made, the item
is removed, or his choice:<o:p></o:p></span></div>
<pre class="brush: java"> listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position,
long id) {
// If there is a tap on the Header or Footer, do not do anything
if (position == 0 || position == list.size() + 1)
return;
Message msg = new Message();
msg.arg1 = position - 1;// If was detected swipe we delete an item
if (swipeDetector.swipeDetected()){
if (swipeDetector.getAction() == SwipeDetector.Action.LR ||
swipeDetector.getAction() == SwipeDetector.Action.RL)
{
msg.what = MSG_ANIMATION_REMOVE;
msg.arg2 = swipeDetector.getAction() == SwipeDetector.Action.LR ? 1 : 0;
msg.obj = view;
}
}
// Otherwise, select an item
else
msg.what = MSG_CHANGE_ITEM;
handler.sendMessage(msg); }
});</pre>
<div class="MsoNormal">
<span lang="EN-US">Just do not
forget the context menu. When you remove an item from the context menu of the
direction in which the View will have to move, set at random:<o:p></o:p></span></div>
<pre class="brush: java"> case MSG_REMOVE_ITEM: // Remove an item
Message msg = new Message();
msg.arg1 = index;
msg.arg2 = (new Random()).nextInt(2);
msg.obj = listview.getChildAt(index + 1);
msg.what = MSG_ANIMATION_REMOVE;
getHandler().sendMessage(msg);
//removeItem(index);
return true;</pre>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>Links<o:p></o:p></b></div>
<div class="MsoNormal">
</div>
<ul>
<li>Source code
of the project: <a href="http://www.snowpard.org/examples/article_b12/parts/p3/en/CustomListViewP3.zip">zip</a></li>
<li><span lang="EN-US">Planning</span>:
<a href="http://snowpard-android.blogspot.ru/2013/01/planning-customization-listview.html"><span lang="EN-US">Part </span>1</a>, <span lang="EN-US"><a href="http://snowpard-android.blogspot.ru/2013/01/planning-saving-and-loading-list.html">Part 2</a></span>, <a href="http://snowpard-android.blogspot.ru/2013/01/planning-flying-cells.html">Part 4</a></li>
<li>Finished
project: <a href="http://www.snowpard.org/examples/article_b12/CustomListView.apk">apk</a></li>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-74898164372200784902013-01-17T22:25:00.000+04:002013-01-21T22:21:28.140+04:00Planning: Saving and loading the list. Extension of functional<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Planning: Saving and loading the list. Extension of functional" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" title="Planning: Saving and loading the list. Extension of functional" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In the last
article, we developed a custom ListView, which is filled with local data. In
this article we expand the functionality of our application and implement the
ability to save and load data.</span><b style="mso-bidi-font-weight: normal;"><br /></b><br />
<b style="mso-bidi-font-weight: normal;"></b><br />
<a name='more'></a></div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;">Practice</b></h3>
<div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In this
article I will show you how to work with files on the sd-card (saving and
loading). And as we expand the possible actions with our list by using the main
and context menu. The result of the program you can see in the screenshots,
below.</span></div>
<div class="MsoNormal">
<div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">
</span></div>
<div style="text-align: center;">
<img border="0" height="200" src="http://1.bp.blogspot.com/-l47KvetKypU/UPg9HcfOaFI/AAAAAAAAAbo/3BjVQwB9cfM/s200/device-2013-01-17-215540.png" width="132" /> <img border="0" height="200" src="http://3.bp.blogspot.com/-xm7lSmoh9Uc/UPg9HSsIrMI/AAAAAAAAAbk/DBSaL4A6mtM/s200/device-2013-01-17-215557.png" style="cursor: move;" width="132" /><a href="http://2.bp.blogspot.com/-Eq1xD89bZBk/UPg9HUeqxII/AAAAAAAAAbg/NiHU7tbGTEY/s1600/device-2013-01-17-215547.png" imageanchor="1"> <img border="0" height="200" src="http://2.bp.blogspot.com/-Eq1xD89bZBk/UPg9HUeqxII/AAAAAAAAAbg/NiHU7tbGTEY/s200/device-2013-01-17-215547.png" width="131" /></a></div>
<div>
<br /></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Proceed
directly to the practice. </span><br />
<div class="MsoNormal">
<div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">
</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">1. Save /
Load the list</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To access
the SD-card uses the class Environment. This class provides access to
environment variables. We use the method getExternalStorageDirectory().GetAbsolutePath()
to get the path to the SD-card device.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In class
Utils add line:</span></div>
<div class="MsoNormal">
<pre class="brush: java">// Directory on the SD-card where stores the list
public static File cacheDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/customlistview");</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To save and
load list, use the following idea: save the object (ArrayList) wholly in the
binary. For correct operation the previous article, we have added an interface
Serializable for the class ToDoItem.</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Save the list on the SD-card
*/
private synchronized void saveList() {
try {
File infoFile = new File(Utils.cacheDir, "cache");
infoFile.createNewFile();
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(infoFile));
out.writeObject(list);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Load a list of SD-Card
*/
@SuppressWarnings("unchecked")
public boolean loadList() {
try {
Utils.cacheDir.mkdir();
File infoFile = new File(Utils.cacheDir, "cache");
infoFile.createNewFile();
ObjectInputStream in = new ObjectInputStream(new FileInputStream(infoFile));
list = (List<ToDoItem>) in.readObject();
in.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Make
changes to the existing algorithms:</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In the
method onCreate() instead initList() will use loadList().</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">It is also
necessary to add saving a list on change status for element. This happens in
Handler.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java"> private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what)
{
...
case MSG_CHANGE_ITEM: // Do / not do case
ToDoItem item = list.get(msg.arg1);
item.setCheck(!item.isCheck());
Utils.sorting(list, 0);
saveList();
adapter.notifyDataSetChanged();
setCountPurchaseProduct();
break;
}
}
};</pre>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
2. Development of the main menu</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The main menu appears in the application when
you press the menu button on the device.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">With our main menu application can perform the
following functions:</span></div>
<ul>
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add an element;</span></div>
</li>
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Remove all the elements;</span></div>
</li>
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To mark all the elements;</span></div>
</li>
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Remove marks from all the elements.</span></div>
</li>
</ul>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">First, add all the string resources in the file
strings.xml.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"menu_item_add"</span></i><span style="color: teal;">></span><span style="color: black;">Add</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"menu_item_remove"</span></i><span style="color: teal;">></span><span style="color: black;">Remove</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"menu_item_rename"</span></i><span style="color: teal;">></span><span style="color: black;">Rename</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"menu_item_remove_all"</span></i><span style="color: teal;">></span><span style="color: black;">Remove all</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"menu_item_check_all"</span></i><span style="color: teal;">></span><span style="color: black;">Check all</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"menu_item_uncheck_all"</span></i><span style="color: teal;">></span><span style="color: black;">Remove all checks</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_yes"</span></i><span style="color: teal;">></span><span style="color: black;">Yes</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"btn_no"</span></i><span style="color: teal;">></span><span style="color: black;">No</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"msg_empty"</span></i><span style="color: teal;">></span><span style="color: black;">The name can not be
empty</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">
</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now,
designed layout for the menu. Need to create a directory menu in res folder. There
create a file menu.xml</span></div>
<div class="MsoNormal">
<div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">
</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
(menu.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">menu</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i>
<span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/menu_item_add"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/menu_item_add"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/menu_item_remove_all"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/menu_item_remove_all"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/menu_item_check_all"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/menu_item_check_all"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/menu_item_uncheck_all"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/menu_item_uncheck_all"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
</div>
<div class="MsoNormal">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">menu</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<div>
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"><br /></span></div>
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">
</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now it is necessary to develop
methods that will be executed when selecting menu items.</span></div>
<div class="MsoNormal">
<ul>
<li>Add
Item (showAddToDoItemDialog)</li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">This method will create a dialog box
with an input field name. After you click "Yes" to the list to add a
new element.</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Open dialog box to add an item
*/
private void showAddToDoItemDialog()
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.menu_item_add));
final Context context = this;
final EditText input = new EditText(this);
builder.setView(input);
builder.setPositiveButton(getString(R.string.btn_yes), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
if (value.equals(""))
Toast.makeText(context, getString(R.string.msg_empty), Toast.LENGTH_SHORT).show();
else
{
list.add(new ToDoItem(value, getIndexFromList() + 1));
Utils.sorting(list, 0);
saveList();
getHandler().sendEmptyMessage(MainActivity.MSG_UPDATE_ADAPTER);
}
}
});
builder.setNegativeButton(getString(R.string.btn_no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
AlertDialog alert = builder.create();
alert.show();
}</pre>
</div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Remove all the elements
(removeAll)</span></li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">This method will be fully clear the
list.</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Removing all items from the list
*/
private void removeAll() {
list.clear();
saveList();
getHandler().sendEmptyMessage(MainActivity.MSG_UPDATE_ADAPTER);
}</pre>
</div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Checking / unchecking all items
(setCheckAll)</span></li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">This method, depending on the
parameter sets / clears selection of each item in the list.</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Do / not do all cases
*/
private void setCheckAll(boolean check)
{
Iterator<ToDoItem> it = list.iterator();
while (it.hasNext())
{
ToDoItem item = it.next();
item.setCheck(check);
}
Utils.sorting(list, 0);
saveList();
getHandler().sendEmptyMessage(MainActivity.MSG_UPDATE_ADAPTER);
}</pre>
</div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Get the last index in the list
(getIndexFromList)</span></li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">This method returns the last index
of in the list.</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Get the last index in the list
*/
private int getIndexFromList()
{
int index = 0;
Iterator<ToDoItem> it = list.iterator();
while (it.hasNext())
{
ToDoItem item = it.next();
if (item.getIndex() > index)
index = item.getIndex();
}
return index;
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now add the
menu in Activity.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java"> /**
* Creating the main menu
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
/**
* Processing clicking on an item of the main menu
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id)
{
case R.id.menu_item_add: // Adding an item
showAddToDoItemDialog();
return true;
case R.id.menu_item_remove_all: // Removing all items
removeAll();
return true;
case R.id.menu_item_check_all: // Do all cases
setCheckAll(true);
return true;
case R.id.menu_item_uncheck_all: // Redo list to its original state
setCheckAll(false);
return true;
default:
return super.onOptionsItemSelected(item);
}
}</pre>
</div>
<div class="MsoNormal">
<div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">
</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">3.
Development of the context menu </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The context
menu for the ListView appears when you long press on an item. Registered by the
method registerForContextMenu(). The context menu of our application will be
able to perform the following functions: </span></div>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Delete the
item;</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Rename
the item. </span></div>
</li>
</ul>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">First
developed a method for the context menu. </span></div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Delete
selected item (removeItem) </span></li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Removes the
specified item from the list. After removal of the list is re-indexed.</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Removing all items from the list
*/
private void removeItem(int index) {
list.remove(index);
reindexList();
saveList();
getHandler().sendEmptyMessage(MainActivity.MSG_UPDATE_ADAPTER);
}</pre>
</div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Rename
the selected item (showRenameDialog)</span></li>
</ul>
</div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Open a dialog box to rename an item
*/
private void showRenameDialog(final int index)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.menu_item_rename));
final Context context = this;
final EditText input = new EditText(this);
input.setText(list.get(index).getName());
builder.setView(input);
builder.setPositiveButton(getString(R.string.btn_yes), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
if (value.equals(""))
Toast.makeText(context, getString(R.string.msg_empty), Toast.LENGTH_SHORT).show();
else
{
list.get(index).setName(value);
saveList();
getHandler().sendEmptyMessage(MainActivity.MSG_UPDATE_ADAPTER);
}
}
});
builder.setNegativeButton(getString(R.string.btn_no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
AlertDialog alert = builder.create();
alert.show();
}</pre>
</div>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Reindexing list (reindexList) </span></li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">This method
orders index in the list after removing an element.</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Reallocate indexes for items in the list
*/
private void reindexList()
{
int index = 1;
Utils.sorting(list, 1);
Iterator<ToDoItem> it = list.iterator();
while (it.hasNext())
{
ToDoItem item = it.next();
item.setIndex(index);
index++;
}
Utils.sorting(list, 0);
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now let's
add a context menu in Activity.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Register
the menu to ListView in method onCreate():</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">registerForContextMenu(listview); // Register the context menu for ListView</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add methods
in Activity:</span></div>
<div class="MsoNormal">
<pre class="brush: java"> /**
* Creating context menu for ListView
*/
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
int index = ((AdapterView.AdapterContextMenuInfo)menuInfo).position;
if (index == list.size() + 1 || index == 0)
return;
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, MSG_REMOVE_ITEM, Menu.NONE, R.string.menu_item_remove);
menu.add(0, MSG_RENAME_ITEM, Menu.NONE, R.string.menu_item_rename);
}
/**
* Processing clicking on an item context menu
*/
@Override
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int index = menuInfo.position - 1;
switch (item.getItemId())
{
case MSG_REMOVE_ITEM: // Remove an item
removeItem(index);
return true;
case MSG_RENAME_ITEM: // Rename an item
showRenameDialog(index);
return true;
}
return false;
} </pre>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;">Links</b></h3>
<div>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
of the project: <a href="http://www.snowpard.org/examples/article_b12/parts/p2/en/CustomListViewP2.zip">zip</a></span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Planning</span>:
<a href="http://snowpard-android.blogspot.ru/2013/01/planning-customization-listview.html"><span lang="EN-US" style="mso-ansi-language: EN-US;">Part </span>1</a>, <a href="http://snowpard-android.blogspot.ru/2013/01/planning-swipe-animation-remove-items.html">Part 3</a>, <a href="http://snowpard-android.blogspot.ru/2013/01/planning-flying-cells.html">Part 4</a></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Finished
project: <a href="http://www.snowpard.org/examples/article_b12/CustomListView.apk">apk</a></span></div>
</li>
</ul>
</div>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-13048449122357553732013-01-16T20:33:00.000+04:002013-02-23T23:08:43.350+04:00Planning: Custom ListView. Formulation of the problem<div>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Planning: Customization ListView. Formulation of the problem" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbDLZ3uvPA94RWQSdBYjswIAWEgfpyhE8oIM8GJ7RkiTFuY-ekhBAW60E57qZatLXwnm_9xWFgXF1xivsd5UN5LCZ9evhzcGkcnJP1kXmq3WY8YAR26CstPi744vuBrmLrkb4nYtZlHDf/s1600/icon.png" title="Planning: Customization ListView. Formulation of the problem" /></a>
<span lang="EN-US" style="mso-ansi-language: EN-US;">This
article begins a small series of articles about customizing lists (ListView).
We'll write a little app to plan your cases. In the first part I will cover
moment to create a ListView, its customization, adding extra elements (Header,
Footer) and fill the list.</span></div>
<div class="MsoNormal">
<a name='more'></a><div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b></div>
</div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Statement of the problem</span></b></h3>
<div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">At the end
of our series of articles the application must perform the following functions:</span></div>
<ol>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add /
Delete / Select / Move scheduled case.</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Delete
all scheduled cases.</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Select /
deselect all scheduled cases.</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Save /
Load cases scheduled on the card.</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Animation delete scheduled case.</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Animation
flying cells.</span></div>
</li>
</ol>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Some theory</span></b></h3>
<div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">ListView is
a view group that displays a list of scrollable items. The list items are automatically
inserted to the list using an Adapter that pulls content from a source such as
an array or database query and converts each item result into a view that's
placed into the list.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The basic
algorithm development and customization ListView as follows: </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">1. First,
you must develop a data structure which will represent one item. It can be a
simple type or object (such as String or Integer), or developed class, as in
our case (ToDoItem).</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">2. In the
next step, it is necessary to develop all xml layout:</span></div>
<ul>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">layout for a list item (listitem.xml);</span></div>
</li>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">layout for the Activity, which will be our
ListView (in this case, main.xml);</span></div>
</li>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">layout for the Header and Footer, if they
(list_header.xml, list_footer.xml).</span></div>
</li>
</ul>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">3. Next,
you need to develop adapter (CustomListAdapter.java) for the formation of our
ListView to the specified data source. In this case, the adapter will be extended
from the BaseAdapter and the data source will be used ArrayList.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">4. The last
step - the union of all developed in our Activity. Algorithm for object
initialization next:</span></div>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>load or initialize list
(ArrayList) of the data; </span></div>
</li>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">initialize ListView (using the
findViewById()); </span></div>
</li>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">create adapter with the downloaded data; </span></div>
</li>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">if there is a Header or Footer, that add
them to the ListView (using methods addHeaderView() or addFooterView(),
respectively); </span></div>
</li>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">set an adapter for ListView (using the
setAdapter()).</span></div>
</li>
</ul>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For correct
work of ListView, you should follow these rules:</span></div>
<ul>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Header and Footer to be added before calling
setAdapter (); </span></div>
</li>
<li><div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">if you added Header or Footer, that note
that the parameter position in the method onItemClick () for ListView will:</span></div>
</li>
</ul>
<div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">- For one more, if you have added Header;</span></div>
<div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">- One or two larger than the data source (method
size() for the ArrayList, if added 1 (or 2) View, respectively).</span><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;">Practice</b></h3>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The images
used in th</span><span lang="EN-US" style="mso-ansi-language: EN-US;">e project can be downloaded <a href="http://www.snowpard.org/examples/article_b12/drawable.zip">here</a>.</span>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-c-xGR17XSBE/UPZkO0y2a9I/AAAAAAAAAas/zQJpiT8TcjY/s1600/image_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-c-xGR17XSBE/UPZkO0y2a9I/AAAAAAAAAas/zQJpiT8TcjY/s320/image_1.png" width="181" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Before the
development layouts and classes, we must add the string resources.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"app_name"</span></i><span style="color: teal;">></span><span style="color: black;">CustomListView</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_header_title"</span></i><span style="color: teal;">></span><span style="color: black;">ToDo List</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_footer_title"</span></i><span style="color: teal;">></span><span style="color: black;">Done: %s</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">1. Development
of the project will begin with the development of the class ToDoItem. Objects
of this class will be the data source for the items in the list.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Set the
following attributes of the class:</span></div>
<div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">name - the name of the case;</span></div>
<div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">check - done / not done by the current case;</span></div>
<div class="MsoNormal" style="text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">index - the position in the list when adding
(to be used to sort the list).</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The class
will be serialized in order to be able to save and load.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">S</span>ource
code:</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">import java.io.Serializable;
/**
* An item to the list
*/
public class ToDoItem implements Serializable{
private static final long serialVersionUID = 2008719019880549886L;
private String name; // Name of the case
private boolean check; // Done / Not done
private int index; // Position in the list when adding
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isCheck() {
return check;
}
public void setCheck(boolean check) {
this.check = check;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public ToDoItem(String name, int index) {
setName(name);
setIndex(index);
setCheck(false);
}
public ToDoItem() {
setName("");
setCheck(false);
}
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">2. Development
of layouts</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To begin
with develop xml-layout to represent a single element in the list.On the layout
of a few comments: </span></div>
<div class="MsoNormal" style="margin-left: 53.25pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<ul>
<li><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:focusable</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"false"
</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;">used for the
CheckBox, so that you can handle the press a list item (method onItemClick ()
for ListView).</span></li>
</ul>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">S</span>ource
code<span lang="EN-US" style="mso-ansi-language: EN-US;"> (listitem.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><u><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span></u><u><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span></u></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginLeft</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"3dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginRight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"3dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/item"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"horizontal"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/listitem_name"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><u><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></u></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"left|center_vertical"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:singleLine</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:ellipsize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"end"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginLeft</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"10dp"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">CheckBox</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/listitem_check"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginRight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"5dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:button</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/custom_checkbox"</span></i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:focusable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now,
designed layouts for the Header and Footer. Header will be used for the header
and Footer will display the number completed cases.</span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
(list_header.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginLeft</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"3dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginRight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"3dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/header"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/header_title"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:shadowColor</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:color/black"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:shadowDy</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:shadowRadius</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"2"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textColor</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:color/white"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"20sp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textStyle</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"bold"</span></i>
<span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><br />
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
(list_footer.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i>
<span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginLeft</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"3dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginRight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"3dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/footer"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/footer_title"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_marginRight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"2dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"right|center_vertical"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textStyle</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"bold"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now develop
main layout that will ListView. Standard ListView by clicking on the item
highlighted in black. To avoid this, it is necessary to add a property: </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:cacheColorHint</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"@android:color/transparent"</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;">.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
(main</span>.<span lang="EN-US" style="mso-ansi-language: EN-US;">xml)</span>:</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:color/white"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">ListView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/listview"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:cacheColorHint</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:color/transparent"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span><br />
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">3. Development
of adapter</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In this
example, we will use the simplest adapter extended from BaseAdapter. The source
of data will be ArraList<ToDoItem>.</span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
(CustomListAdapter):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.graphics.Paint;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
/**
* Adapter for ListView
*/
public class CustomListAdapter extends BaseAdapter {
private LayoutInflater inflater_;
private List<ToDoItem> list = new ArrayList<ToDoItem>();
private Context context;
public CustomListAdapter(List<ToDoItem> list, Context context)
{
this.list = list;
inflater_ = LayoutInflater.from(context);
this.context = context;
}
@Override
public int getCount() {
return this.list.size();
}
@Override
public Object getItem(int position) {
return this.list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public void setList(List<ToDoItem> list)
{
this.list = list;
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
View v = view;
if (view == null)
v = inflater_.inflate(R.layout.listitem,
parent, false);
v.setVisibility(View.VISIBLE);
// Getting an item from list
final ToDoItem item = list.get(position);
// Setting the name of the case
TextView listitem_name = (TextView)v.findViewById(R.id.listitem_name);
listitem_name.setText(item.getIndex() + ". " + item.getName());
// Strikethrough completed cases
if (item.isCheck())
listitem_name.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.STRIKE_THRU_TEXT_FLAG);
else
listitem_name.setPaintFlags(Paint.ANTI_ALIAS_FLAG);
// Setting checkbox and events on click
CheckBox listitem_check = (CheckBox)v.findViewById(R.id.listitem_check);
listitem_check.setChecked(item.isCheck());
listitem_check.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Message msg = new Message();
msg.arg1 = position;
msg.what = MainActivity.MSG_CHANGE_ITEM;
((MainActivity)context).getHandler().sendMessage(msg);
}
});
return v;
}
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">4. Development
of a specialized class Utils.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The class I
am developing an alone, because it uses methods (static), which we can use in
the future in other classes. </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Method ()
is used to remove the default selection for the item in the list and divider between
the elements. </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Method
sorting() is used to sort the list. Ability to sort by done / not done cases
(type = 0) and the index (type = 1).</span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
(Utils):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.widget.ListView;
/**
* Specialized class for various static methods
*/
public class Utils {
/**
* Set various parameters for the list. In particular, it removes the divider in a list.
*/
public static void setList(ListView list, Context context) {
list.setSelector(android.R.color.transparent);
ColorDrawable sage = new ColorDrawable(context.getResources().getColor(
android.R.color.transparent));
list.setDivider(sage);
list.setDividerHeight(0);
}
/**
* Sort the list
* @param type 0 - sort by checkmark
* @param type 1 - sort by index
*/
public static void sorting(List<ToDoItem> list, final int type)
{
Collections.sort(list, new Comparator<ToDoItem>() {
@Override
public int compare(ToDoItem item1, ToDoItem item2) {
int compare = 0;
switch (type)
{
case 0:
Boolean bool_value1 = Boolean.valueOf(item1.isCheck());
Boolean bool_value2 = Boolean.valueOf(item2.isCheck());
compare = bool_value1.compareTo(bool_value2);
if (compare == 0)
compare = (item1.getIndex() > item2.getIndex()) ? 1 : -1;
break;
case 1:
Integer int_value1 = Integer.valueOf(item1.getIndex());
Integer int_value2 = Integer.valueOf(item2.getIndex());
compare = int_value1.compareTo(int_value2);
break;
}
return compare;
}
});
}
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">5. Main
class MainActivity.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The
attributes of our class will be the following:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">// Messages for Handler
public static final int MSG_UPDATE_ADAPTER = 0;
public static final int MSG_CHANGE_ITEM = 1;
// Objects for working with to-do list
private List<ToDoItem> list = new ArrayList<ToDoItem>();
private CustomListAdapter adapter;
private ListView listview;
// Footer for ListView
private View footer;</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Messages
are used to Handler. They make it possible to update the list is not from the
main thread.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Footer
shall be made to the attributes that you can update it at runtime.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now do all
the necessary initialization in the method onCreate().</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initList(); // Initialization list
listview = (ListView)findViewById(R.id.listview);
/*
Adding header and footer to the ListViewNote:
1. These Views must be added before calling setAdapter
2. These Views are taken into account in obtaining the position of an item in the list (for example in the way OnItemClickListener (for ListView) and getView (for Adapter))
*/
View header = LayoutInflater.from(this).inflate(R.layout.list_header, null, false);
((TextView)header.findViewById(R.id.header_title)).setText(R.string.txt_header_title);
listview.addHeaderView(header);
footer = LayoutInflater.from(this).inflate(R.layout.list_footer, null, false);
listview.addFooterView(footer);
adapter = new CustomListAdapter(list, this);
setCountPurchaseProduct(); // Calculation done cases
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position,
long id) {
// If there is a tap on the Header or Footer, do not do anything
if (position == 0 || position == list.size() + 1)
return;
Message msg = new Message();
msg.arg1 = position - 1;
msg.what = MSG_CHANGE_ITEM;
handler.sendMessage(msg);
}
});
// ListView set up and sort our list of the check box
Utils.setList(listview, this);
Utils.sorting(list, 0);
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add methods
to initialize the list and calculation done cases:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">/**
* Initialization list
*/
private void initList()
{
for (int i = 1; i <= 10; i++)
list.add(new ToDoItem("ToDo Item " + i, i));
}
/**
* Calculate amount cases done
*/
private void setCountPurchaseProduct()
{
int count = 0;
Iterator<ToDoItem> it = list.iterator();
while (it.hasNext())
{
ToDoItem item = it.next();
if (item.isCheck())
count++;
}
((TextView)footer.findViewById(R.id.footer_title)).setText(String.format(getString(R.string.txt_footer_title), count));
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The final
step will be the development Handler:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what)
{
case MSG_UPDATE_ADAPTER: // ListView updating
adapter.notifyDataSetChanged();
setCountPurchaseProduct();
break;
case MSG_CHANGE_ITEM: // Do / not do case
ToDoItem item = list.get(msg.arg1);
item.setCheck(!item.isCheck());
Utils.sorting(list, 0);
adapter.notifyDataSetChanged();
setCountPurchaseProduct();
break;
}
}
};
public Handler getHandler()
{
return handler;
}
</pre>
</div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><br /></b></div>
<h3>
<b style="mso-bidi-font-weight: normal;">Links</b></h3>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Source code
of the project: <a href="http://www.snowpard.org/examples/article_b12/parts/p1/en/CustomListViewP1.zip">zip</a> </span></div>
</li>
<li>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Planning</span>:
<a href="http://snowpard-android.blogspot.ru/2013/01/planning-saving-and-loading-list.html"><span lang="EN-US" style="mso-ansi-language: EN-US;">Part 2</span></a>, <a href="http://snowpard-android.blogspot.ru/2013/01/planning-swipe-animation-remove-items.html">Part 3</a>, <a href="http://snowpard-android.blogspot.ru/2013/01/planning-flying-cells.html">Part 4</a></li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Finished
project: <a href="http://www.snowpard.org/examples/article_b12/CustomListView.apk">apk</a></span></div>
</li>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com1tag:blogger.com,1999:blog-6116172484948741564.post-64250459744898986432013-01-08T00:35:00.000+04:002013-01-08T00:35:18.639+04:00Advertising services: AdMob<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-arzkSO2Of94/UOswynQwbpI/AAAAAAAAAZA/359jK7-XEJw/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Advertising services: AdMob" border="0" src="http://3.bp.blogspot.com/-arzkSO2Of94/UOswynQwbpI/AAAAAAAAAZA/359jK7-XEJw/s1600/icon.png" title="Advertising services: AdMob" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">AdMob - a
mobile advertising service from Google. In this article I will discuss how to
use this service in their applications and games.</span></div>
<div class="MsoNormal">
<br /></div>
<div>
<br /></div>
<a name='more'></a><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;">What does
the AdMob:</span><br />
<ul>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Create
your own ads;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">SDK for
Android, iPhone and Windows Phone 7;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Flexible
and powerful management tools advertising platforms;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Stable
automatic payments (to earn more than $ 100).</span></li>
</ul>
<div class="MsoNormal">
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Getting Started</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;"> </span></h3>
<span lang="EN-US" style="mso-ansi-language: EN-US;">To get
started, to sign up or sign in: <a href="http://www.google.com/ads/admob/" target="_blank">www.google.com/ads/admob/</a> and download
the sdk (at this link: <a href="https://developers.google.com/mobile-ads-sdk/download" target="_blank">developers.google.com/mobile-ads-sdk/download</a>). For
each application, you must get your Publisher ID. So go to Sites & Apps,
and click Add Site/App. After filling out the required fields, your application
will be assigned an ID. You can watch it by clicking the button in the
application Manage Settings.</span><br />
<div class="MsoNormal">
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Code</span><span lang="EN-US"> </span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">integration</span></b></h3>
<span lang="EN-US" style="mso-ansi-language: EN-US;">To work
with the SDK AdMob should place the downloaded jar in libs folder of the
project (if it does not, you need to create it) and add the library to the
project. <span style="mso-spacerun: yes;"> </span>Click on «Properties» in the
«Project» menu bar.<span style="mso-spacerun: yes;"> </span>Select «Java Build
Path» on the left and then select the “Libraries” tab. Click «Add JARs...» and
select the downloaded file. The file should now appear under your project’s
Referenced Libraries.</span><br />
<div class="MsoNormal">
Для рекламного сервиса необходимо добавить следующие
разрешения в <span lang="EN-US" style="mso-ansi-language: EN-US;">AndroidManifest</span>:</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">uses-permission</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"android.permission.INTERNET"</span></i>
<span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">uses-permission</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"android.permission.ACCESS_NETWORK_STATE"</span></i>
<span style="color: teal;">/></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For
advertising service you must add the following permissions in AndroidManifest:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">activity</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 32.25pt; margin-right: 0cm; margin-top: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:name</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"com.google.ads.AdActivity"</span></i><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:configChanges</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"</span></i>
<span style="color: teal;">/></span></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">There are
two ways to add an advertising banner in View:</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">1. From xml</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RelativeLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">xmlns:ads</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/lib/com.google.ads"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">com.google.ads.AdView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/adview_banner_view"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"50dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">ads:adSize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"BANNER"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">ads:adUnitId</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"Publisher ID Here!"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">ads:loadAdOnCreate</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">"true"</span></i><span style="font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">RelativeLayout</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span><span style="mso-ansi-language: EN-US;"> </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">2. From code</span></div>
<div class="MsoNormal">
<pre class="brush: java">String ADMOBID = “Publisher ID Here!";
AdView adview = new AdView(this, AdSize.BANNER, ADMOBID);
parentView.addView(adview);</pre>
</div>
<div>
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Advertising management service </span></b></h3>
<span lang="EN-US" style="mso-ansi-language: EN-US;">After
adding View advertising service, you must download advertising when the
application opens and stops loading when the application is minimized.</span><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">public class MainActivity extends Activity {
private AdView adView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
adView = (AdView)findViewById(R.id.adview_banner_view);
}
@Override
protected void onPause() {
super.onPause();
if (adView.isRefreshing())
adView.stopLoading();
}
@Override
protected void onResume() {
super.onResume();
adView.loadAd(new AdRequest());
}
}</pre>
</div>
<div>
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h3>
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_a5/AdMobExample.zip">zip</a></span></li>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com4tag:blogger.com,1999:blog-6116172484948741564.post-88035376557034740902013-01-04T00:49:00.000+04:002013-01-04T00:50:09.024+04:00Customization interface: Fonts<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Sometimes
it is necessary to change the default application font on your own. How to do
it, I'll show in this article.</span><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<a name='more'></a><span lang="EN-US" style="mso-ansi-language: EN-US;">All fonts
are placed in the folder assets/fonts (previously created it). Note: It is
better to use OTF fonts. If you have a different format fonts, you can use the
free online convector: </span><a href="http://www.freefontconverter.com/" target="_blank"><span lang="EN-US" style="mso-ansi-language: EN-US;">freefontconverter.com</span></a><span lang="EN-US" style="mso-ansi-language: EN-US;">.</span>
<br />
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Create a
layout with a set TextView, on which to experiment:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"vertical"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/txt_font_1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/txt_font_1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"20sp"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/txt_font_2"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/txt_font_2"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"20sp"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/txt_font_3"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:gravity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"center"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/txt_font_3"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">android:textSize</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">"20sp"</span></i><span style="font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In the
string resources necessary to add the following lines:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_font_1"</span></i><span style="color: teal;">></span><span style="color: black;">Font Example 1</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_font_2"</span></i><span style="color: teal;">></span><span style="color: black;">Font Example 2</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_font_3"</span></i><span style="color: teal;">></span><span style="color: black;">Font Example 3</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="color: teal;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Create a
new class <b>FontSystem</b>.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Add him to
the static attributes, once for each of our fonts:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">public static final int TYPE_FONT_1 = 1;
public static final int TYPE_FONT_2 = 2;
public static final int TYPE_FONT_3 = 3;</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">And add a
method that will set the font to the desired View:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">public static void setTypeface(View v, int type, Context context)
{
if (v == null)
return;
Typeface tf = null;
try
{
switch (type)
{
case TYPE_FONT_1:
tf = Typeface.createFromAsset(context.getAssets(),"fonts/font1.otf");
break;
case TYPE_FONT_2:
tf = Typeface.createFromAsset(context.getAssets(),"fonts/font2.otf");
break;
case TYPE_FONT_3:
tf = Typeface.createFromAsset(context.getAssets(),"fonts/font3.otf");
break;
}
if (v instanceof TextView)
((TextView)v).setTypeface(tf);
}catch (Exception e) {
e.printStackTrace();
}
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In general
Activity set fonts in our TextView:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FontSystem.setTypeface(findViewById(R.id.txt_font_1), FontSystem.TYPE_FONT_1, this);
FontSystem.setTypeface(findViewById(R.id.txt_font_2), FontSystem.TYPE_FONT_2, this);
FontSystem.setTypeface(findViewById(R.id.txt_font_3), FontSystem.TYPE_FONT_3, this);
}</pre>
</div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b>
<br />
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h3>
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://www.snowpard.org/examples/article_b11/FontExample.zip">zip</a></span></li>
</ul>
<ul>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-84246969968782802082013-01-03T20:43:00.000+04:002013-01-03T20:43:00.358+04:00Orientation of the application<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In this
article we will discuss how to develop applications for different orientations
of the device. I will also show an easy way to identify the type of device, the
tablet or smartphone.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<a name='more'></a><span lang="EN-US" style="mso-ansi-language: EN-US;">Create a
new project. Add string resources in the following lines:</span><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_portrait"</span></i><span style="color: teal;">></span><span style="color: black;">PORTRAIT</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_landscape"</span></i><span style="color: teal;">></span><span style="color: black;">LANDSCAPE</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">string</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Xml-file
for our Activity looks like this:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RelativeLayout</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"match_parent"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_centerHorizontal</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_centerVertical</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/txt_portrait"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">/></span><span style="font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;"><o:p> </o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">RelativeLayout</span><span style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">When you
run the application, we will see that the layout is displayed in portrait
orientation. Turning the device, the application will change the interface,
adjusting to the current orientation of the device. If you add in the method onCreate()
for the current Activity information log, you will see that when you change the
orientation of our Activity restarts.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To separate
layouts for portrait and landscape interface, add a folder layout-land in
resources. «-land» shows that these resources will be used only in landscape
orientation.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Copy the
layout file in the folder layout in layout-land and replace the text output for
the TextView on </span><span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:text</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"@string/txt_landscape".</span></i></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">After
launching the application, we will see that the application is using the
correct layout for the respective orientations.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">It remains
to deny the application constantly restart Activity at each change of
orientation.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To do this,
add the following line in the manifest for the current Activity: </span><span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:configChanges</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"orientation|screenSize".</span></i></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Manifest:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">manifest</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">package</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"org.snowpard.projects.ten"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:versionCode</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:versionName</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">uses-sdk</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:minSdkVersion</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"8"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:targetSdkVersion</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"16"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">application</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:allowBackup</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:icon</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/icon"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:label</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/app_name"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">activity</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"org.snowpard.projects.ten.MainActivity"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:label</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/app_name"</span></i> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:configChanges</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"orientation|screenSize"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">intent-filter</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">action</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"android.intent.action.MAIN"
</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">category</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"android.intent.category.LAUNCHER"
</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">intent-filter</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">activity</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">application</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">manifest</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">And
override onConfigurationChanged () in Activity the following way:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now, after
a change of orientation, we used the desired layout and does not restart
Activity.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">There are
cases when you need to make an application that runs on smartphones only in
portrait mode, and the tablets in both orientations.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">This is
implemented in two steps:</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">1.
Necessary to determine the type of device: smartphone or tablet.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">2. Do not
allow to change the orientation of the smartphone application.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To
determine the type of device, we proceed as follows. You must create in the
folder res/values file defaults.xml.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">bool</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"isTablet"</span></i><span style="color: teal;">></span><span style="color: black;">false</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">bool</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Then,
create a folder: values-large (for 7 "tablet) and values-xlarge (10"
tablets). Copy the file defaults.xml to the new location and replace the value
of the variable isTablet to true.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">bool</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"isTablet"</span></i><span style="color: teal;">></span><span style="color: black;">true</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">bool</span><span style="color: teal;">></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">resources</span><span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In our
Activity add the attribute:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private boolean isTablet;</pre>
<span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In the
method onCreate() will get the value from the resources:</span></div>
<div class="MsoNormal">
<pre class="brush: java">this.isTablet = getResources().getBoolean(R.bool.isTablet);</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Create a
new method that will determine whether you need to change the orientation for
the application or not:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">private void wasPortrait()
{
if (!this.isTablet)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
else
setContentView(R.layout.main);
}</pre>
</div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Method
setRequestedOrientation() sets the desired orientation (in this case the
portrait).</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Added a
call method wasPortrait() at the end of method onCreate() and in the
onConfigurationChanged().</span></div>
<div class="MsoNormal">
Full listing<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<pre class="brush: java">public class MainActivity extends Activity {
private boolean isTablet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.e("MainActivity", "onCreate");
this.isTablet = getResources().getBoolean(R.bool.isTablet);
wasPortrait();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
wasPortrait();
}
private void wasPortrait()
{
if (!this.isTablet)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
else
setContentView(R.layout.main);
}
}
</pre>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5lNW32qlCRfl9hkdINu5XvOl6c4oBzewcQMMvhBJ-sc0FAYXTWwEzv6v8YjgpjiSic5VxBSUi484uMmuFfOiGOwGekA8qX2sTY0HCqBueOoPjLao1cZWjQ6c8knqYB4T5aeWpr5me8tb/s1600/portland.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5lNW32qlCRfl9hkdINu5XvOl6c4oBzewcQMMvhBJ-sc0FAYXTWwEzv6v8YjgpjiSic5VxBSUi484uMmuFfOiGOwGekA8qX2sTY0HCqBueOoPjLao1cZWjQ6c8knqYB4T5aeWpr5me8tb/s320/portland.png" width="296" /></a></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h3>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://www.snowpard.org/examples/article_b10/PortLandExample.zip">zip</a></span></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-17544811070055296722012-10-16T22:32:00.000+04:002013-02-23T23:09:05.446+04:00Interface: Custom CheckBox and RadioButton<br />
<div class="MsoNormal" style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Customization interface: CheckBox and RadioButton" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Customization interface: CheckBox and RadioButton" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">This
article look at how you can customize the controls such as CheckBox and
RadioButton. Differences from the usual buttons in the fact that they have two
states: check and uncheck.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br />
<a name='more'></a><br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">What is used</span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For our purposes
are used widgets CheckBox and RadioButton. The main property in xml to
customize when creating these widgets to change the look:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<ul>
<li><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:button </span><span lang="EN-US" style="mso-ansi-language: EN-US;">– button image element.<span style="mso-tab-count: 1;"> </span> </span></li>
</ul>
</div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To
customize the behavior of the elements necessary to use selector. This xml-file
that specifies which image to use for the different states of the element.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For
example, use the following elements</span></div>
<ul>
<li><div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">for CheckBox
(<a href="http://www.snowpard.org/examples/article_b9/checkbox_images.zip">download</a>):</span></div>
</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Hlfxeo1fNvg/UHzd4Rvx6cI/AAAAAAAAAVY/2N0t8Eup_7Y/s1600/checkbox_off.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-Hlfxeo1fNvg/UHzd4Rvx6cI/AAAAAAAAAVY/2N0t8Eup_7Y/s1600/checkbox_off.png" /></a><a href="http://3.bp.blogspot.com/-JrTyheTwFQo/UHzd5QcU31I/AAAAAAAAAVc/UITkf8ApStk/s1600/checkbox_off_disable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-JrTyheTwFQo/UHzd5QcU31I/AAAAAAAAAVc/UITkf8ApStk/s1600/checkbox_off_disable.png" /></a><a href="http://4.bp.blogspot.com/-GlNg5DqXGog/UHzd6QQZ8BI/AAAAAAAAAVk/AV87YuBIiXc/s1600/checkbox_on.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-GlNg5DqXGog/UHzd6QQZ8BI/AAAAAAAAAVk/AV87YuBIiXc/s1600/checkbox_on.png" /></a><a href="http://3.bp.blogspot.com/-S7nXxip918o/UHzd7nOHDqI/AAAAAAAAAVs/RwUfPiKLIts/s1600/checkbox_on_disable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-S7nXxip918o/UHzd7nOHDqI/AAAAAAAAAVs/RwUfPiKLIts/s1600/checkbox_on_disable.png" /></a></div>
<ul>
<li> <span lang="EN-US" style="mso-ansi-language: EN-US;">for RadioButton
(<a href="http://www.snowpard.org/examples/article_b9/radio_button_images.zip">download</a>):</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3PaBlIH7g1x2DeiWps1pI08_azJUExMExHW-VOdS6_xaYMuVQDrTciE1v-q9_MD8HGuOV0MobjdZQRSUxKQxKf_a8PkJoJIKATAmGW3ZiE0BAt5krw3xdbkAEaWXWtjXuM39yDcFCsjz/s1600/radio_button_off.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3PaBlIH7g1x2DeiWps1pI08_azJUExMExHW-VOdS6_xaYMuVQDrTciE1v-q9_MD8HGuOV0MobjdZQRSUxKQxKf_a8PkJoJIKATAmGW3ZiE0BAt5krw3xdbkAEaWXWtjXuM39yDcFCsjz/s1600/radio_button_off.png" /></a><a href="http://2.bp.blogspot.com/-a6UBEDlOMeA/UHzeGbSIqnI/AAAAAAAAAV8/hfdFp_eZLaw/s1600/radio_button_off_disable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-a6UBEDlOMeA/UHzeGbSIqnI/AAAAAAAAAV8/hfdFp_eZLaw/s1600/radio_button_off_disable.png" /></a><a href="http://4.bp.blogspot.com/-nORWEQXvZ88/UHzeHg5m8rI/AAAAAAAAAWE/qV6fzShAzvA/s1600/radio_button_on.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-nORWEQXvZ88/UHzeHg5m8rI/AAAAAAAAAWE/qV6fzShAzvA/s1600/radio_button_on.png" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKaYWlvYlCV0nQ_7rjbFdRAYdHDwV5hYQJjCpaQN4dGWkgWKQKjlQcoCVzQLb-4bkfit9V_Y5xVM53J5_fkkFMaJ5AzE18TlR8WPvYvQS0H5SWiXJgpFpVHLrOB0nC2HjNjaJCTsJlhweJ/s1600/radio_button_on_disable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKaYWlvYlCV0nQ_7rjbFdRAYdHDwV5hYQJjCpaQN4dGWkgWKQKjlQcoCVzQLb-4bkfit9V_Y5xVM53J5_fkkFMaJ5AzE18TlR8WPvYvQS0H5SWiXJgpFpVHLrOB0nC2HjNjaJCTsJlhweJ/s1600/radio_button_on_disable.png" /></a></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Our
selector will look like this (drawable/custom_checkbox_selector.xml):</span><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/checkbox_on"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"true"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/checkbox_off"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"false"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/checkbox_on_disable"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"true"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/checkbox_off_disable"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"false"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/checkbox_off"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">selector</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">- </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> =</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"true|false"</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;"> indicates the status of the element:
check or uncheck; </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The other
attributes are described in this <a href="http://snowpard-android.blogspot.com/2012/10/customization-interface-button-and.html" target="_blank">article</a>.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Selector
for RadioButton will be next (drawable/custom_radio_selector.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/radio_button_on_disable"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"true"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/radio_button_off_disable"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"false"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/radio_button_on"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"true"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/radio_button_off"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_checked</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"false"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span><br />
<div>
<br /></div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;">Practice</b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now we need
to create our interface. We will modify the file main.xml. To add an element
selector, you must use the following construction:</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android</span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">:</span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">button</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">"@</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">drawable</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">/</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">custom</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">_</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">checkbox</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">_</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">"</span></i></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"vertical"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><CheckBox</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/checkbox_1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:button</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/custom_checkbox_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:checked</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/check_1"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><CheckBox</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/checkbox_2"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:button</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/custom_checkbox_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">android:checked</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"false"</span></i></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/check_2" </span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RadioGroup</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/radioGroup"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RadioButton</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/radio_1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:button</span><i><span style="color: #2a00ff;">="@drawable/custom_radio_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:checked</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/radio_1"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RadioButton</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/radio_2"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:button</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/custom_radio_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:checked</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/radio_2"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RadioButton</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/radio_3"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:button</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/custom_radio_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:checked</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/radio_3"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">RadioGroup</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now we need
to add a behavior to each button in the program. This example creates the
following items: 2 CheckBox, 1 RadioGroup, which contains 3 RadioButton.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<pre class="brush: java">
public class CustomCheckExampleActivity extends Activity implements RadioGroup.OnCheckedChangeListener,
View.OnClickListener{
private CheckBox check_1, check_2;
private RadioGroup radioGroup;
private Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.context = this;
this.check_1 = (CheckBox)findViewById(R.id.checkbox_1);
this.check_2 = (CheckBox)findViewById(R.id.checkbox_2);
this.radioGroup = (RadioGroup)findViewById(R.id.radioGroup);
this.check_1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
check_2.setEnabled(isChecked);
}
});
this.check_2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
RadioButton btn = (RadioButton)radioGroup.getChildAt(radioGroup.getChildCount() - 1);
btn.setEnabled(isChecked);
}
});
}
@Override
public void onClick(View arg0) {
radioGroup.clearCheck();
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Toast.makeText(context, "" + group.getCheckedRadioButtonId(), Toast.LENGTH_SHORT).show();
}
}</pre>
</div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b>
<br />
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://www.snowpard.org/examples/article_b9/CustomCheckExample.zip">zip</a></span></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-5239772752005652922012-10-10T22:41:00.001+04:002013-02-23T23:09:14.717+04:00Interface: Custom Button and ImageView<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Customization interface: Button and ImageView" border="0" src="http://4.bp.blogspot.com/-f0S12cds_KI/UHXAmMfnJtI/AAAAAAAAAUw/c4bP8BLzzUE/s1600/icon.png" title="Customization interface: Button and ImageView" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In this
article begins a series of articles on customizing applications interface for
Android. Today let's talk how to change the appearance of buttons and use the
ImageView as a button.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div>
<br /></div>
<a name='more'></a><div>
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">What is used</span></b></h3>
<span lang="EN-US" style="mso-ansi-language: EN-US;">As the buttons will be used widgets Button and
ImageView. The main property for customization in the xml file when creating
these widgets for change of appearance:</span><br />
<ul>
<li class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;">for Button: </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:background
</span><span lang="EN-US" style="mso-ansi-language: EN-US;">– background image
widget</span></li>
<li class="MsoNormal" style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;">for ImageView: </span></li>
</ul>
<div class="MsoNormal" style="margin-left: 35.4pt; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">- </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:background </span><span lang="EN-US" style="mso-ansi-language: EN-US;">– background image for widget;</span></div>
<div class="MsoNormal" style="margin-left: 70.8pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">- </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:src </span><span lang="EN-US" style="mso-ansi-language: EN-US;">– front-end image for widget. </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To
customize the behavior of the elements necessary to use selector. This is
xml-file that specifies which image to use for the different states of the
element.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For Button,
we use Nine-Patch images that have been created for this <a href="http://snowpard-android.blogspot.com/2012/10/nine-patch-images.html" target="_blank">article</a>.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For
example, we use:</span></div>
<ul>
<li class="MsoNormal" style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;">ex4_2.9.png
- for the normal state of the button (rename to btn_normal.9.png);</span></li>
<li class="MsoNormal" style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;">ex4_3.9.png
- for the pressed state of the button (rename to btn_pressed.9.png);</span></li>
<li class="MsoNormal" style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;">ex4_4.9.png
- for the disable state of the button (rename to btn_disable.9.png);</span></li>
</ul>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Our
selector will look like this (drawable/btn_selector.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_pressed</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:drawable</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"@drawable/btn_pressed"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android</span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">:</span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">drawable</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"@</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">drawable</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">/</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">btn</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">_</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">normal</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"</span></i><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:drawable</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"@drawable/btn_disable"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">- </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_pressed</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"true|false"</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;"> indicates pressed or normal state
of the button; </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">- </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:state_enabled</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">"true|false"</span></i><span lang="EN-US" style="mso-ansi-language: EN-US;"> indicates an enable or disable
state of the button.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Attribute </span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:drawable
</span><span lang="EN-US" style="mso-ansi-language: EN-US;">is used to set a
specific image for the selected state of the element.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">We will
create a selector to ImageView. For this item, we will use only two states:
normal and pressed, and the images we take the usual, not Nine-Patch.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">This
<a href="http://snowpard-android.blogspot.com/2012/10/optimizing-applications-for-different.html" target="_blank">article</a> describes how to optimize those images for different screen resolutions.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Our
selector to ImageView will look like this (drawable/img_selector.xml):</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_pressed</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android</span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">:</span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">drawable</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"@</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">drawable</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">/</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">img</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">_</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">pressed</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"</span></i><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">item</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:state_enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i>
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; text-align: justify; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">android:drawable</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">"@drawable/img_normal"</span></i><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;">Practice</b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now we need
to create our interface. We will modify the file main.xml. To add an element
selector, use the following construction:</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">android</span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">:</span><span lang="EN-US" style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">background</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">"@</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">drawable</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">/</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">btn</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">_</span></i><i><span lang="EN-US" style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">selector</span></i><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">"</span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">btn_selector
– is the name of xml-file of our selector. </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><?</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">xml</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">android:orientation</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"vertical"</span></i><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"horizontal"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/btn_1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/btn_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/btn_1"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/btn_2"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/btn_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:enabled</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"false"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/btn_2"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"></</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">Button</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/btn_3"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/btn_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/btn_3"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">ImageButton</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/img"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"100dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"100dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/img_selector"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:scaleType</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fitXY"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:visibility</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"invisible"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-fareast-language: RU;">></span> </div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now we need
to add a behavior to each button in the program. In this example, a 4 elements:
2 buttons width at half-screen, one button for the whole width of the screen
and the image size of 100 dp x 100 dp.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<pre class="brush: java">
public class CustomButtonExampleActivity extends Activity{
private Button btn_1, btn_2, btn_3;
private ImageView img;
private Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.btn_1 = (Button)findViewById(R.id.btn_1);
this.btn_2 = (Button)findViewById(R.id.btn_2);
this.btn_3 = (Button)findViewById(R.id.btn_3);
this.img = (ImageView)findViewById(R.id.img);
this.context = this;
this.btn_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn_2.setEnabled(true);
v.setEnabled(false);
}
});
this.btn_2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn_1.setEnabled(true);
v.setEnabled(false);
}
});
this.btn_3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
img.setVisibility((img.isShown()) ? View.INVISIBLE : View.VISIBLE);
}
});
this.img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show();
}
});
}
</pre>
</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h3>
<ul>
<li class="MsoNormal" style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_b8/CustomButtonExample.zip">zip</a></span></li>
</ul>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-54014598462744136142012-10-06T22:17:00.000+04:002012-10-06T22:24:51.017+04:00Nine-patch images<div style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In
developing the UI for your application, we are often faced with the need to
stretch the image in relation to the different sizes of Android-devices. Many
images can be with rounded edges or with a complex pattern that with increasing
give different artifacts in the form of noise or blur. This can be avoided by
using the Nine-patch images.</span></div>
<div class="MsoNormal">
<a name='more'></a></div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b>
<br />
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Theory</span></b></h3>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">These
images represent the class NinePatch. This class permits drawing a bitmap in
nine sections. The four corners are unscaled; the four edges are scaled in one
axis, and the middle is scaled in both axes. Normally, the middle is
transparent so that the patch can provide a selection about a rectangle. In
essence, it allows you to create custom graphics that will scale as you set. </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In terms of
images, Nine-path - this is a common image (*.png), in which the edge of a 1
pixel contain overhead information for the graphics subsystem Android.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">It is
divided into two parts: </span></div>
<ul>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">information
for the correct scaling of the block;</span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">information
about the area's content in the block. </span></div>
</li>
</ul>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In the
absence of the first - the image will be scaled as a whole, the second - the
content will be placed on the entire image area.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The top and
left of the frame set of scalable, right and bottom - the display area of
content. In this case, the transparent pixels represent an unmarked area, and
black - marked.</span><br />
<div>
<br /></div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Design</span></b></h3>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Creating
such images by the example of such a picture:</span></div>
<div class="MsoNormal" style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f4jjOAmfE6k/UHBzuWpYhuI/AAAAAAAAAQI/Hrgz5xgQ33c/s1600/image+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images" border="0" src="http://4.bp.blogspot.com/-f4jjOAmfE6k/UHBzuWpYhuI/AAAAAAAAAQI/Hrgz5xgQ33c/s1600/image+1.png" title="Nine-patch images" /></a></div>
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To make
this simple picture of nine-patch, you can use any image editor that supports
*. png or special utility draw9patch, which is located in the folder at the
installation tools Android SDK.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">In our
example, we use Android utility for working with images. You can open an image
using the menu item File> Open 9-patch. </span>Now draw a repeating region
and the region's content.</div>
<div class="MsoNormal" style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-qC2GMhAQyDU/UHB0GQPGzDI/AAAAAAAAAQQ/d1jiieXjI7E/s1600/image+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images" border="0" height="187" src="http://1.bp.blogspot.com/-qC2GMhAQyDU/UHB0GQPGzDI/AAAAAAAAAQQ/d1jiieXjI7E/s320/image+2.png" title="Nine-patch images" width="320" /></a></div>
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The right
side shows the result of the utility scale of the image.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Now you
need to save the image extension c * .9.png and add to the project (in the
folder /drawable).</span></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Examples</span></b></h3>
<div class="MsoNormal" style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSQyPkGr-Nd53u-pS0OHVchNiwFhp3XBLVdWG6eNjTB67hvN6jgR2IKk8VPJgkwWvJbiaTR7Svwr0oANA3Wo4XthAZl1LGrIj3Uj8HqImawcBKCHxyGZptWVE_5h0Cpgx3wdvYSbxcnGyj/s1600/ex1_1.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSQyPkGr-Nd53u-pS0OHVchNiwFhp3XBLVdWG6eNjTB67hvN6jgR2IKk8VPJgkwWvJbiaTR7Svwr0oANA3Wo4XthAZl1LGrIj3Uj8HqImawcBKCHxyGZptWVE_5h0Cpgx3wdvYSbxcnGyj/s1600/ex1_1.9.png" title="Nine-patch images - examples" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjkjGH7xRw1WqUrSBtFJE3N6Cq97UvEK7HoaJjxLFJH0IQviRcIrMpJFjOgO3DBOBLaKCaov9Y0GOFhZEfLgzNGHsEucH4eGLdVfXrNI_aWbvXjrcFwsKmil69yrI-c90WSC-JH_P51ofH/s1600/ex1_2.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjkjGH7xRw1WqUrSBtFJE3N6Cq97UvEK7HoaJjxLFJH0IQviRcIrMpJFjOgO3DBOBLaKCaov9Y0GOFhZEfLgzNGHsEucH4eGLdVfXrNI_aWbvXjrcFwsKmil69yrI-c90WSC-JH_P51ofH/s1600/ex1_2.9.png" title="Nine-patch images - examples" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP12DeAa0LVJbIo5bsO_gCzEJkri_3jcpo4s8dqJ0n5NOAKo6Wi2Lxf5LniZwVHXesg-RebPfRv9mTNHKUJPlwibfBcQ_hel9cq7pw9v49_8IKbbLy7VvaM8dNVC6F03Fc4b_fkRbmYiui/s1600/ex1_3.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP12DeAa0LVJbIo5bsO_gCzEJkri_3jcpo4s8dqJ0n5NOAKo6Wi2Lxf5LniZwVHXesg-RebPfRv9mTNHKUJPlwibfBcQ_hel9cq7pw9v49_8IKbbLy7VvaM8dNVC6F03Fc4b_fkRbmYiui/s1600/ex1_3.9.png" title="Nine-patch images - examples" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga2Y39NESyA3OMIuiyUCg5sWJEtticVNCbENVZbNL25jHRTWGd1RtnORMAIuafWrR_rPOg2u-eEDECLrJQSnvO-2VdqGKd8hrx_uqihngN3TB_M62awZDdlXAPIajALaeeInQZDhCP8ZB7/s1600/ex2_1.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga2Y39NESyA3OMIuiyUCg5sWJEtticVNCbENVZbNL25jHRTWGd1RtnORMAIuafWrR_rPOg2u-eEDECLrJQSnvO-2VdqGKd8hrx_uqihngN3TB_M62awZDdlXAPIajALaeeInQZDhCP8ZB7/s1600/ex2_1.9.png" title="Nine-patch images - examples" /></a><a href="http://2.bp.blogspot.com/-hepupeBH-M0/UHB0dLwtvaI/AAAAAAAAAQ4/gTudaGWypUQ/s1600/ex2_2.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-hepupeBH-M0/UHB0dLwtvaI/AAAAAAAAAQ4/gTudaGWypUQ/s1600/ex2_2.9.png" /></a><a href="http://1.bp.blogspot.com/-HZpsz6R11lU/UHB0dnmDIPI/AAAAAAAAARA/Y9TezEmva6Y/s1600/ex2_3.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://1.bp.blogspot.com/-HZpsz6R11lU/UHB0dnmDIPI/AAAAAAAAARA/Y9TezEmva6Y/s1600/ex2_3.9.png" title="Nine-patch images - examples" /></a><a href="http://2.bp.blogspot.com/-YQBE_4nb1b4/UHB0ezjKuKI/AAAAAAAAARE/JbYztrB8Plg/s1600/ex2_4.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://2.bp.blogspot.com/-YQBE_4nb1b4/UHB0ezjKuKI/AAAAAAAAARE/JbYztrB8Plg/s1600/ex2_4.9.png" title="Nine-patch images - examples" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-xCQRmsBnunQ/UHB0lqmgkvI/AAAAAAAAARQ/L-rRGfd6fRg/s1600/ex3_1.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://3.bp.blogspot.com/-xCQRmsBnunQ/UHB0lqmgkvI/AAAAAAAAARQ/L-rRGfd6fRg/s1600/ex3_1.9.png" title="Nine-patch images - examples" /></a><a href="http://1.bp.blogspot.com/-q6yCU3Da1qE/UHB0muQ6iDI/AAAAAAAAARY/Y5_icf9oQLk/s1600/ex3_2.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://1.bp.blogspot.com/-q6yCU3Da1qE/UHB0muQ6iDI/AAAAAAAAARY/Y5_icf9oQLk/s1600/ex3_2.9.png" title="Nine-patch images - examples" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2fuaFUI-Sbrms8U6jAaHpMsL3JpfkHYLZb0niS7j6ZUxfqpGE76yj9ZAXb0u5xrwRztIDLSNVmk-jJdDCukxeLQGQCEZpl9ndV3jBtkZgzfJbzJow0BToE6-4s9h1EBShn405Hq-Y7cGi/s1600/ex3_4.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2fuaFUI-Sbrms8U6jAaHpMsL3JpfkHYLZb0niS7j6ZUxfqpGE76yj9ZAXb0u5xrwRztIDLSNVmk-jJdDCukxeLQGQCEZpl9ndV3jBtkZgzfJbzJow0BToE6-4s9h1EBShn405Hq-Y7cGi/s1600/ex3_4.9.png" title="Nine-patch images - examples" /></a><a href="http://4.bp.blogspot.com/-cYa5oFY5y5M/UHB0n-l-wwI/AAAAAAAAARo/VFdfvylVsfY/s1600/ex3_5.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://4.bp.blogspot.com/-cYa5oFY5y5M/UHB0n-l-wwI/AAAAAAAAARo/VFdfvylVsfY/s1600/ex3_5.9.png" title="Nine-patch images - examples" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-_YPwC41d668/UHB0xBsIA5I/AAAAAAAAARw/D1DQRSYbJSA/s1600/ex4_1.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://2.bp.blogspot.com/-_YPwC41d668/UHB0xBsIA5I/AAAAAAAAARw/D1DQRSYbJSA/s1600/ex4_1.9.png" title="Nine-patch images - examples" /></a><a href="http://1.bp.blogspot.com/-72LM_EiBBw8/UHB0x0Q7xNI/AAAAAAAAAR4/dbQ-bV2u0-4/s1600/ex4_2.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://1.bp.blogspot.com/-72LM_EiBBw8/UHB0x0Q7xNI/AAAAAAAAAR4/dbQ-bV2u0-4/s1600/ex4_2.9.png" title="Nine-patch images - examples" /></a><a href="http://4.bp.blogspot.com/-ef9bDrLwQSY/UHB0yzff76I/AAAAAAAAAR8/gfe0Ou5c6aI/s1600/ex4_3.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="http://4.bp.blogspot.com/-ef9bDrLwQSY/UHB0yzff76I/AAAAAAAAAR8/gfe0Ou5c6aI/s1600/ex4_3.9.png" title="Nine-patch images - examples" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVfzuPkdIHbmku4lVtuI3iSh9BFrfkxCzpThG4R0aUuXOCnlWojBkKKZc-p-H4pcH9AqvS4REHhFoW70wIrGpaUuHDnGDWLalBoexD_ridezmdYBKYI3RM9G-_cUUz5beMWMVWAKgn10EM/s1600/ex4_4.9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nine-patch images - examples" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVfzuPkdIHbmku4lVtuI3iSh9BFrfkxCzpThG4R0aUuXOCnlWojBkKKZc-p-H4pcH9AqvS4REHhFoW70wIrGpaUuHDnGDWLalBoexD_ridezmdYBKYI3RM9G-_cUUz5beMWMVWAKgn10EM/s1600/ex4_4.9.png" title="Nine-patch images - examples" /></a></div>
<br />
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h3>
<div class="MsoNormal">
<ul>
<li><span lang="EN-US" style="mso-ansi-language: EN-US;">Examples of
images in one archive: <a href="http://snowpard.org/examples/article_b5/examples.zip">zip</a></span></li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-3824205969303588822012-10-02T21:50:00.001+04:002012-10-06T22:30:44.901+04:00Advertising Services: WapStart<br />
<div class="MsoNormal" style="text-align: justify;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMjXHjYXya0ofuCiau2EBg47MNoeyonJFFZtyasFsdJS6gksYrJ24VxhqFIdiEODni7dPb994wYXeG1HL1D5UE9rjvP3AJvPSyqOEkps_F7fbTb9WdIeGxc5RAahP0_O7tSQhvkZhtVbTj/s1600/icon.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Advertising Services: WapStart" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMjXHjYXya0ofuCiau2EBg47MNoeyonJFFZtyasFsdJS6gksYrJ24VxhqFIdiEODni7dPb994wYXeG1HL1D5UE9rjvP3AJvPSyqOEkps_F7fbTb9WdIeGxc5RAahP0_O7tSQhvkZhtVbTj/s1600/icon.png" title="Advertising Services: WapStart" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">WapStart -
the largest mobile advertising network in Russia. How to use this network, I
will explain in this article.</span></div>
<div class="MsoNormal">
<br />
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<a name='more'></a><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;">What offers
WapStart:</span></div>
<ul>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Guaranteed purchase advertising mobile traffic;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Maximizing revenue through the price formation on the basis of the auction;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">High
efficiency of advertising by targeting a broad functional;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Detailed
statistics on-line advertising campaigns on the mobile site;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">The
ability to place their own advertising with a functional "Home Advertising";</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Support
for a wide pool of mobile application platforms;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Robust,
scalable ad management with a guaranteed rate of return banner;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">Pre-moderation before placement on the mobile platform of each ad;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">SDK for
Android, iPhone, Java ME;</span></li>
<li class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;">API for
Bada, Symbian, Blackberry, Window Phone 7, PHP, etc.</span></li>
</ul>
<span lang="EN-US" style="background: white; color: black; font-family: "Verdana","sans-serif"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US;"><o:p> </o:p></span>
<br />
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Getting Started</span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">To get
started, to register at this <a href="https://wwwpassport.wapstart.ru/registration" target="_blank">link</a>
and download the sdk. For each
application, you need to get your code. So go to Platform - Management and
click Add platform. After filling out the required fields, and save the platform,
your application will be assigned a unique code. </span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Code integration</span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">SDK is
available as source code, which must be placed in the folder src. Also need to
copy files from the resource (res).</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For
advertising service you must add the following permissions in AndroidManifest:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">uses-permission</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"android.permission.INTERNET"</span></i>
<span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;">uses-permission</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"android.permission.ACCESS_NETWORK_STATE"</span></i>
<span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Also in the
block AndroidManifest <application> want to add information about the
used Activity: </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><activity
android:name="ru.wapstart.plus1.sdk.MraidBrowser" /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">There are
two ways to add an advertising banner in View:</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">1. From xml</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">LinearLayout</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"vertical"</span></i> <span style="color: teal;">></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">TextView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><u><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i></u></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/hello"</span></i> <span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">ru.wapstart.plus1.sdk.Plus1BannerView</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 3;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/banner_adview"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 3;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"320dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 3;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"50dp"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-tab-count: 3;"> </span></span><span style="color: #7f007f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">android:layout_gravity</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">"center"</span></i></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"><span style="mso-tab-count: 2;"> </span><span style="color: teal;">/> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">LinearLayout</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: RU;">></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">During the initialization of the Activity
create and configure the objects as follows:</span><span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<pre class="brush: java">
private Plus1BannerView mBannerView;
private Plus1BannerAsker mAsker;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mBannerView =
(Plus1BannerView) findViewById(R.id.banner_adview);
mAsker =
new Plus1BannerAsker(
new Plus1BannerRequest()
.setApplicationId(Ваш код площадки),
mBannerView
.enableAnimationFromTop()
.enableCloseButton()
);
}
</pre>
</div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">2. From
code</span></div>
<div class="MsoNormal" style="text-align: justify;">
<pre class="brush: java">
mBannerView = new Plus1BannerView(this);
parentView.addView(adview);
</pre>
</div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Then it is
necessary to provide for the call handlers onResume() and onPause():</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<pre class="brush: java">
@Override
protected void onPause() {
super.onPause();
mAsker.onPause();
}
@Override
protected void onResume() {
super.onResume();
mAsker.onResume();
</pre>
</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Links</span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The source
codes of this project can be downloaded here: <a href="http://snowpard.org/examples/article_a7/WapStartExample.zip">zip</a></span></div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0tag:blogger.com,1999:blog-6116172484948741564.post-3079110543197245052012-10-01T23:07:00.001+04:002012-10-01T23:07:43.754+04:00Optimizing applications for different resolutions<div>
<div class="MsoNormal" style="text-align: justify;">
The question of developing an application that supports a
large number of screen resolutions always gets an edge from developers under
Android. As the number of different devices has already exceeded 1,000. In this
article I will talk about one of the ways to support different resolutions in
the application.</div>
<div class="MsoNormal" style="text-align: justify;">
<br />
<a name='more'></a></div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">What is used</span></b></h3>
<div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">At the
heart of my method of optimization is such a characteristic screen as size.
Now, the following qualifiers:</span></div>
<ul>
<li><div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Small:
used for resources with small screens (mostly 240x320);</span></div>
</li>
<li><div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Normal:
used for resources with the normal screen (mostly 480x800);</span></div>
</li>
<li><div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Large: is
used for resources with larger screens (mostly 600x1024 or tablet 7");</span></div>
</li>
<li><div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Xlarge:
used for resources with very large screens (mostly 1280x800 and above or
tablets from 9").</span></div>
</li>
</ul>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">If it is
possible to use the Nine-Patch image, it is best to use them.</span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Use</span></b></h3>
<div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Font sizes
and items we store in the resource file dimen.xml.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Font size:</span></div>
<div class="MsoNormal" style="text-align: justify;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">dimen</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"txt_size_12"</span></i><span style="color: teal;">></span><span style="color: black;">12sp</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">dimen</span><span style="color: teal;">></span></span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Dimensions
of the elements:</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: RU;">dimen</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: RU;">
<span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"image_width_50"</span></i><span style="color: teal;">></span><span style="color: black;">50dp</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">dimen</span><span style="color: teal;">></span></span>
<span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">For the way
we use these dimensions in xml used qualifier @dimen.</span></div>
<div class="MsoNormal" style="text-align: justify;">
For example: </div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: RU;">android:textSize</span><span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: RU;">=</span><i><span lang="EN-US" style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: RU;">"@dimen/txt_size_12"</span></i>
<span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">or</span></div>
<div class="MsoNormal" style="text-align: justify;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: #7f007f; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">android:layout_width</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">=</span><i><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-fareast-language: RU;">"@dimen/image_width_50"</span></i></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">Optimization
method is to create and match sizes for different screens. You can use
emulators with different resolutions. </span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
</div>
<h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Restriction devices in Google Play</span></b></h3>
<div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Visibility of your application for different
screen sizes can be limited by using the following code in AndroidManifest:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><</span><span lang="EN-US" style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;">supports-screens</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"> <span style="color: #7f007f;">android:smallScreens</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;">
</span><span style="color: #7f007f;">android:normalScreens</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;">
</span><span style="color: #7f007f;">android:largeScreens</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;">
</span><span style="color: #7f007f;">android:xlargeScreens</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:anyDensity</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i><span style="color: teal;">/></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">Related Links</span></b></div>
<ul align="justify">
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Google: <a href="http://developer.android.com/guide/practices/screens_support.html" target="_blank">Supporting Multiple Screens</a> </span></div>
</li>
<li><div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Google:
<a href="http://developer.android.com/about/dashboards/index.html" target="_blank">Dashboards</a></span></div>
</li>
</ul>
</div>
Snowpardhttp://www.blogger.com/profile/05293709567974780986noreply@blogger.com0