tag:blogger.com,1999:blog-51859105186970513252024-02-21T21:06:59.433-08:00The HeadsmanDesenvolvimento Android, IOS, Smartphone, Tablet.Anonymoushttp://www.blogger.com/profile/05559454207956023443noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-5185910518697051325.post-21330630479791061882012-05-25T23:11:00.001-07:002012-05-25T23:11:47.550-07:00Criando animação quadro a quadro com AnimationDrawable<span class="Apple-style-span" style="color: #6aa84f; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: large;">( Android ) </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Neste tutorial vou demonstrar como é fácil criar uma animação Quadro a Quadro utilizando a classe AnimationDrawable. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">A maneira mais simples de criar uma animação quadro a quadro é definir a animação em um arquivo XML, colocado no res/drawable, e defini-la como background de um objeto View. No nosso caso será um objeto ImageView. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Então chega de papo e vamos lá !!! </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Crie um novo projeto Android no Eclipse. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Eu vou chama-lo de Exemplo Animation. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">print do projeto: </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2zWqTmajakFtGm2YVmdKzfUdGcX6z_KxqXR8A2OlLMIdbmzDUqCLrvuTf1V9FFUsnWxOvBYUvTc5N3hO10kHm-4RSX85IriUO0PbXadtMvCwg6fZqxywCHYlJFzmOakYuW_0iAToQpwY/s1600/tela1.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2zWqTmajakFtGm2YVmdKzfUdGcX6z_KxqXR8A2OlLMIdbmzDUqCLrvuTf1V9FFUsnWxOvBYUvTc5N3hO10kHm-4RSX85IriUO0PbXadtMvCwg6fZqxywCHYlJFzmOakYuW_0iAToQpwY/s400/tela1.tiff" width="400" /></a></div>
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Antes de proseguir, baixe as imagens que serão utilizadas no exemplo, e salve-as nas pastas res/drawable-hdpi , drawable-ldpi , drawable-mdpi. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">download: <a href="http://www.theheadsman.com.br/imagens_anima.zip">www.theheadsman.com.br/imagens_anima.zip</a></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">O próximo passo será criar o arquivo XML. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Para criar o XML, selecione a pasta RES do projeto, clique com o botão direito, depois NEW / OTHER... / PASTA ANDROID. Na tela de dilalogo selecione ANDROID XML FILE e aperte o botão NEXT.</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">print tela de dialog:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ6KXx4zyZi-A2ZuqS6kbnyDv-Y6JNZG_s4N6nrAa8lUtALil_GmMZHt9IIFdc8mDFjNCjO3SLLuJSQRdOWg93Y2wr_Sw9ZmMbqLCdd_apmRdyP19X8GQ0eBCi9sJmNXDRdgbtx14nlF_O/s1600/tela2.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ6KXx4zyZi-A2ZuqS6kbnyDv-Y6JNZG_s4N6nrAa8lUtALil_GmMZHt9IIFdc8mDFjNCjO3SLLuJSQRdOWg93Y2wr_Sw9ZmMbqLCdd_apmRdyP19X8GQ0eBCi9sJmNXDRdgbtx14nlF_O/s400/tela2.tiff" width="400" /></a></div>
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">na próxima tela: </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7wYW6Ni8PVm88yPHZxSn2KpFUQMpy1tvlSSdvii2xVOtJI567DUOO0eQUWMVzy7IBZt5LX0l07-j4wTm9btXourkK-kIlF5B2p8Ax7IW8SyoMJ8lj2vwB_8Y_MRn2vC91A_G3zSsnL-bS/s1600/tela3.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7wYW6Ni8PVm88yPHZxSn2KpFUQMpy1tvlSSdvii2xVOtJI567DUOO0eQUWMVzy7IBZt5LX0l07-j4wTm9btXourkK-kIlF5B2p8Ax7IW8SyoMJ8lj2vwB_8Y_MRn2vC91A_G3zSsnL-bS/s400/tela3.tiff" width="400" /></a></div>
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Resource Type: drawable</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">File: O nome do XML</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Root Element: animation-list</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Clique em finish e pronto. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Observe que foi criada uma nova pasta chamada drawable sem as definições de DPIs. </span><br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">print XML</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9-acqp1mFF4jBgmx2wlHslJ_iYzDm25G-xtsqzgBCZDHPFDtst5SSHDBskEpfdxn18uUF0AYUGT_Kbm3bpKXfByfsMsLsYm28ReABotU8kyBwHU4K5MaWRl-oA7NSiF_mEtcNfATBXf6j/s1600/tela4.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9-acqp1mFF4jBgmx2wlHslJ_iYzDm25G-xtsqzgBCZDHPFDtst5SSHDBskEpfdxn18uUF0AYUGT_Kbm3bpKXfByfsMsLsYm28ReABotU8kyBwHU4K5MaWRl-oA7NSiF_mEtcNfATBXf6j/s400/tela4.tiff" width="400" /></a></div>
<br />
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Um AnimationDrawable definido no XML consiste de uma único elemento <animation-list>, e uma série de tags <item> aninhadas. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Segue o XML: </span><br />
<br />
<br />
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><?</span><span style="color: #448687;">xml</span><span style="color: black;"> </span>version<span style="color: black;">=</span><span style="color: #312eff;">"1.0"</span><span style="color: black;"> </span>encoding<span style="color: black;">=</span><span style="color: #312eff;">"utf-8"</span><span style="color: #008688;">?></span></div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><</span><span style="color: #448687;">animation-list</span><span style="color: black;"> </span><span style="color: #881e87;">xmlns:android</span><span style="color: black;">=</span>"http://schemas.android.com/apk/res/android"<span style="color: black;"> </span><span style="color: #008688;">></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima1"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima2"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima4"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima6"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima8"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima9"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima10"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima11"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima12"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima13"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima14"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima15"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">item</span><span style="color: black;"> </span>android:drawable<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/anima16"</span><span style="color: black;"> </span>android:duration<span style="color: black;">=</span><span style="color: #312eff;">"100"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"></</span>animation-list<span style="color: #008688;">></span></div>
<br />
<br />
<span class="Apple-style-span" style="color: #881e87; font-family: Monaco; font-size: 11px;">android:drawable</span><span class="Apple-style-span" style="color: #881e87; font-size: 11px;"><span style="color: black;"><span class="Apple-style-span" style="font-family: Monaco;">="" </span><span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">- </span></span></span><span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">carrega as imagens que foram salvas anteriormente nas pastas drawable. </span><br />
<br />
<span class="Apple-style-span" style="color: #881e87; font-family: Monaco; font-size: 11px;">android:duration</span><span class="Apple-style-span" style="color: #881e87; font-family: Monaco; font-size: 11px;"><span style="color: black;">=</span></span><span class="Apple-style-span" style="color: #881e87; font-family: Monaco; font-size: 11px;"><span style="color: #312eff;">"</span></span> <span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">- define o tempo de cada frame em milisegundos.</span><br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">O nosso XML animation-list está configurado, agora vamos criar o componente ImageView onde serão carregadas as imagens da animação. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">res/layout/main.xml </span><br />
<br />
<br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #008688;"></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="color: #008688;"><span style="color: #008688;"><?</span><span style="color: #448687;">xml</span><span style="color: black;"> </span>version<span style="color: black;">=</span><span style="color: #312eff;">"1.0"</span><span style="color: black;"> </span>encoding<span style="color: black;">=</span><span style="color: #312eff;">"utf-8"</span><span style="color: #008688;">?></span></span></div>
<span class="Apple-style-span" style="color: #008688;">
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><</span><span style="color: #448687;">LinearLayout</span><span style="color: black;"> </span><span style="color: #881e87;">xmlns:android</span><span style="color: black;">=</span>"http://schemas.android.com/apk/res/android"</div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:orientation<span style="color: black;">=</span><span style="color: #312eff;">"vertical"</span><span style="color: black;"> </span><span style="color: #008688;">></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span>ImageView</div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #881e87;">android:id</span><span style="color: black;">=</span>"@+id/animacao"</div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span><span style="color: black;"> </span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_gravity<span style="color: black;">=</span><span style="color: #312eff;">"center_horizontal"</span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"></</span>LinearLayout<span style="color: #008688;">></span></div>
</span><br />
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">E por fim, na nossa activity: </span><br />
<br />
<br />
<br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #88185d;">public</span> <span style="color: #88185d;">class</span> ExemploAnimation <span style="color: #88185d;">extends</span> Activity {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">private</span> ImageView <span style="color: #0023c5;">animaHorse</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #6c6c6c; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>@Override</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> <span style="color: #88185d;">void</span> onCreate(Bundle savedInstanceState) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">super</span>.onCreate(savedInstanceState);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>setContentView(R.layout.<span style="color: #0023c5;">main</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// <span style="text-decoration: underline;">Carrega</span> o ImageView e define o background <span style="text-decoration: underline;">para</span> o <span style="text-decoration: underline;">nosso</span> XML</div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// AnimationDrawable</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">animaHorse</span> = (ImageView) findViewById(R.id.<span style="color: #0023c5;">animacao</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">animaHorse</span>.setBackgroundResource(R.drawable.<span style="color: #0023c5;">animation</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>AnimationDrawable frameAnimaHorse = (AnimationDrawable) <span style="color: #0023c5;">animaHorse</span>.getBackground();</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// <span style="text-decoration: underline;">Inicia</span> a <span style="text-decoration: underline;">animação</span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>frameAnimaHorse.start();</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<br /></div>
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Rode a aplicação. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="color: orange; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Obs: Teste em um aparelho real, a animação não está rodando com o virtual device.</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">O play da animação é um loop por padão </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Mas se quiser que a animação rode uma vez e pare, utilize o método setOneShot() da classe AnimationDrawable. Por padrão o método setOnShot() recebe false como parâmetro. Passe true para que rode uma vez. </span><br />
<br />
<span class="Apple-style-span" style="font-family: Monaco;"><span class="Apple-style-span" style="font-size: 11px;"></span></span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Monaco;">frameAnimaHorse.setOneShot(<span style="color: #88185d;">true</span>);</span></div>
<br />
<br />
Faça um teste:<br />
Crie um botão e chame o método stop() no objeto de instancia frameAnimaHorse.<br />
<br />
<span class="Apple-style-span" style="font-family: Monaco; font-size: 11px;">frameAnimaHorse.stop();</span><br />
<span class="Apple-style-span" style="font-family: Monaco; font-size: 11px;"><br /></span><br />
O método IsRunning() indica se a animação está sendo executada ou não - retorna um valor boleano.<br />
<br />
<br />
<br />
Pesquise mais sobre a API.<br />
<a href="http://developer.android.com/reference/packages.html">http://developer.android.com/reference/packages.html</a><br />
<br />
<br />
Valeu, fui !!!<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/05559454207956023443noreply@blogger.com0tag:blogger.com,1999:blog-5185910518697051325.post-83785260521461414752012-05-16T19:20:00.000-07:002012-05-17T08:15:10.224-07:00Convertendo pixels em dp e vice-versa<span class="Apple-style-span" style="color: #6aa84f; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: large;">( Android )</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Eu tive alguns problemas com o tamanho dos objetos customizados no android utilizando a API do Java em telas com densidades diferentes, e vou demonstrar como resolver esse problema, uma vez que o Java utiliza pixels como unidade de medida e não dp. Mas antes vou falar um pouco de tamanho de tela (screen size). </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Essa medida refere-se ao tamanho físico da tela, medida na diagonal. O Android atualmente separa os tamanhos físicos de tela em quatro diferentes categorias, que são: tela pequena small, tela normal normal, tela grande large, tela extragrande xlarge. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Vou dar um exemplo mais claro de cada nomenclatura com aparelhos reais. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b><span class="Apple-style-span" style="font-size: large;">small: </span></b> Sony Ericsson, Xperia Mini, que possuem uma pequena tela QVGA de 240 x 320 pixels </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b><span class="Apple-style-span" style="font-size: large;">normal: </span></b>HTC G1, HTC Magic , Motorola DEXT, possuem uma tela HVGA média 320 x 480 pixels. Nesse grupo também se encontram os celulares um pouco maiores como o Nexus One, Sony Xperia X10, Mororola Milestone, Samsung Galaxy S, que possuem telas WVGA que varia entre 480 x 800 e 480 x 854 pixels. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b><span class="Apple-style-span" style="font-size: large;">large: </span></b>O tablet Samsung Galaxy Tab de 7", que possui tela WVGA de 1024 x 600 pixels </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b><span class="Apple-style-span" style="font-size: large;">xlarge:</span></b> Os novos tablets com Andoids 3.x, com tela WXGA de 1280 x 800 pixels </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="color: orange; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b>Obs:</b> Essas medidas de tela são aproximadas e podem ter variações. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">A resolução da tela é expressa em pixels, por exemplo, 320 x 480 px. Diferente do Iphone, no Android temos diversos celulares ,com resoluções diferentes, o que torna a vida do desenvolvedor android mais emocionante ( Risos ). Assim, no desenvolvimento dos aplicativos devemos evitar utilizar essa notação para definir os tamanhos das views, valores de margens, espaçamentos e qualquer outro parâmetro. No Android nunca trabalhamos diretamente com pixels, e sim com dp (density-independent pixel). </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Densidade da tela é basicamente a relação entre a quantidade de pixels existentes na tela com a sua largura e altura. Quanto maior a densidade, maior será a quantidade de pixels espalhados pela tela. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Bem, agora é fácil, é só eu usar dp ao invés de px que todos os meus problemas estão resolvidos. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Mas e se você criar uma view customizada com o Canvas ao invés do xml por exemplo ? </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Como eu havia explicado anteriormente, o Java utiliza a notação de pixels para definir valores. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Então chega de falar e vamos ao código. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Digamos que estamos criando uma view customizada e precisamos desenhar um quadrado na tela. Para isso precisamos utilizar a API de desenho. Vamos lá. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b>1 -</b> Crie um projeto android no eclipse. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b>2 - </b>Crie uma classe TesteView para API de desenho. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">print do projeto. </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjE7lu5otr_XGzr3oWGltFfRLwdbgIkkXy7aAJSBhytO0GHOe3OjLOR56IgZ3pfChBeCv0LleZNuP9Zdxrcq4w9ub03xdf5PROV_eO3Lpo_4mZQxnb6xRfiBBNNWwWzK9P1GUz99r8tKZZ/s1600/telaProjeto.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjE7lu5otr_XGzr3oWGltFfRLwdbgIkkXy7aAJSBhytO0GHOe3OjLOR56IgZ3pfChBeCv0LleZNuP9Zdxrcq4w9ub03xdf5PROV_eO3Lpo_4mZQxnb6xRfiBBNNWwWzK9P1GUz99r8tKZZ/s400/telaProjeto.tiff" width="400" /></a></div>
<br />
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">O código da Activity é simples, vamos apenas alterar o setContentView(); </span><br />
<br />
<br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #88185d;">public</span> <span style="color: #88185d;">class</span> ExemploConverPixelDP <span style="color: #88185d;">extends</span> Activity {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #6c6c6c; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>@Override</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #88185d;">public</span> <span style="color: #88185d;">void</span> onCreate(Bundle savedInstanceState) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #88185d;">super</span>.onCreate(savedInstanceState);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
setContentView(<span style="color: #88185d;">new</span> TesteView(<span style="color: #88185d;">this</span>));</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;">Segue o código da classe TesteView. </span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span style="color: #88185d;">public</span> <span style="color: #88185d;">class</span> TesteView <span style="color: #88185d;">extends</span> View {</span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">private</span> Paint <span style="color: #0023c5;">paint</span>;</span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> TesteView(Context context) {</span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">super</span>(context);</span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">paint</span> = <span style="color: #88185d;">new</span> Paint();</span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">paint</span>.setColor(Color.<span style="color: #0023c5;">LTGRAY</span>);</span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">paint</span>.setStyle(Style.<span style="color: #0023c5;">FILL</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #6c6c6c; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>@Override</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">protected</span> <span style="color: #88185d;">void</span> onDraw(Canvas canvas) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">super</span>.onDraw(canvas);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.drawRect(0, 0, 320 / 2, 480 / 2, <span style="color: #0023c5;">paint</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<br /></div>
</span><span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Rode e veja o resultado. </span><br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Nós sabemos que existem telas HVGA de 320 x 480 pixels e, portanto o quadrado vai ocupar a metade do tamanho da tela. Mas o que acontece se executarmos o mesmo exemplo em uma tela de maior densidade, como uma WVGA de 480 x 800 pixels. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Segue o print do exemplo executado no virtual divice com a tela HVGA de 320 x 480 pixels a esquerda, e a direita a tela WVGA de 480 x 800 pixels. </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPMz0KvqBSUEDjgL4D34hGr5RnmOL8WTidPQcyjfiX8b3B1oR1maoji5vFLRue3r0QVCPuqHb1nZmGcuzUQnAFmCKclGFQSs8qaDjD9CX667B_ZLXf_zo-Bb9TW9Itr_1N8ZfpWaeqyL1C/s1600/virtualdevice.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPMz0KvqBSUEDjgL4D34hGr5RnmOL8WTidPQcyjfiX8b3B1oR1maoji5vFLRue3r0QVCPuqHb1nZmGcuzUQnAFmCKclGFQSs8qaDjD9CX667B_ZLXf_zo-Bb9TW9Itr_1N8ZfpWaeqyL1C/s400/virtualdevice.tiff" width="400" /></a></div>
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Como podemos verificar, na tela HVGA, o exemplo funcionou como o esperado, e nosso quadrado que (na verdade é um retângulo) preenche exatamente a metade da tela. Isso porque colocamos o valor fixo em pixels no método de desenho. Mas ao executarmos o mesmo exemplo em um aparelho de densidade mais alta o resultado foi diferente. O "quadrado" foi reduzido, pois a quantidade de pixels é maior nessa tela. E agora, o que fazemos ? </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">A solução é pensar que esses valores de 320 x 480 pixels na verdade estão em dp ( density-independent pixel) e fazer a conversão do valor de dp para pixels. Se fosse um arquivo XML de layout bastava colocar a notação em (dp) que tudo ficava lindo, mas em Java teremos que fazer a conversão manualmente. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Método que converte os valores: </span><br />
<br />
<br />
<br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #88185d;">public</span> <span style="color: #88185d;">float</span> toPixel(Context context, <span style="color: #88185d;">float</span> dip) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>Resources r = context.getResources();</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">float</span> densidade = r.getDisplayMetrics().<span style="color: #0023c5;">density</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">int</span> px = (<span style="color: #88185d;">int</span>) (dip * densidade + 0.5f);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">return</span> px;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Segue o código completo: </span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<br />
<br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #88185d;">public</span> <span style="color: #88185d;">class</span> TesteView <span style="color: #88185d;">extends</span> View {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">private</span> Paint <span style="color: #0023c5;">paint</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> TesteView(Context context) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">super</span>(context);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">paint</span> = <span style="color: #88185d;">new</span> Paint();</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">paint</span>.setColor(Color.<span style="color: #0023c5;">LTGRAY</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">paint</span>.setStyle(Style.<span style="color: #0023c5;">FILL</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #6c6c6c; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>@Override</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">protected</span> <span style="color: #88185d;">void</span> onDraw(Canvas canvas) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">super</span>.onDraw(canvas);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// <span style="text-decoration: underline;">valores</span> <span style="text-decoration: underline;">em</span> <span style="text-decoration: underline;">dp</span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">float</span> larguraDP = 320;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">float</span> alturaDP = 480;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// <span style="text-decoration: underline;">convertendo</span> <span style="text-decoration: underline;">para</span> pixels</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">float</span> larguraPX = toPixel(getContext(), larguraDP);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">float</span> alturaPX = toPixel(getContext(), alturaDP);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// <span style="text-decoration: underline;">desenha</span> o <span style="text-decoration: underline;">quadrado</span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>canvas.drawRect(0, 0, larguraPX / 2, alturaPX / 2, <span style="color: #0023c5;">paint</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// <span style="text-decoration: underline;">converte</span> <span style="text-decoration: underline;">de</span> DP <span style="text-decoration: underline;">para</span> Pixels</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> <span style="color: #88185d;">float</span> toPixel(Context context, <span style="color: #88185d;">float</span> dip) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>Resources r = context.getResources();</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">float</span> densidade = r.getDisplayMetrics().<span style="color: #0023c5;">density</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">int</span> px = (<span style="color: #88185d;">int</span>) (dip * densidade + 0.5f);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">return</span> px;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
}</div>
<div>
<br /></div>
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Agora rode e olhe o resultado. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">O nosso quadrado (retângulo) agora ocupa o mesmo espaço, nas duas talas com diferentes densidades. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">print do virtual device: </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6_xCa37yNdHwmNMGQ28H1r9F_Amwpnq5wLo_a0NfhCJ6d3seIkrE8Zk2j8IeHdZFvNPrC-SnokXr14tkpXAawiutLAg_zl3GWfKf3G-jjluXPU_gGHlvjGbPJbCfJDGjIg6MhQENSTvAr/s1600/telavirtualdevice2.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6_xCa37yNdHwmNMGQ28H1r9F_Amwpnq5wLo_a0NfhCJ6d3seIkrE8Zk2j8IeHdZFvNPrC-SnokXr14tkpXAawiutLAg_zl3GWfKf3G-jjluXPU_gGHlvjGbPJbCfJDGjIg6MhQENSTvAr/s400/telavirtualdevice2.tiff" width="400" /></a></div>
<br />
<br />
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> Eu esqueci de mencionar !!! </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">tela QVGA retorna a densidade de 0.75 </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">tela HVGA retorna a densidade de 1.0 </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">tela WVGA retorna a densidade de 1.5</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> Problema resolvido. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Até mais ! </span><br />
<br />
<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/05559454207956023443noreply@blogger.com0tag:blogger.com,1999:blog-5185910518697051325.post-7927519005643016752012-05-13T12:48:00.000-07:002012-05-13T13:13:54.669-07:00Tela Splash Screen<span class="Apple-style-span" style="color: #6aa84f; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: large;">( Android ) </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Vocês já devem ter visto alguma aplicação abrindo uma tela inicial com uma mensagem "Por favor aguarde"ou uma imagem , como por exemplo, a tela de jogo Angry Birds e a tela de iniciação do próprio eclipse. Essas telas são Splash Screens e para implementá-las no Android podemos utilizar um handler. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Uma tela splash screen deve permanecer aberta por um determinado tempo para que a aplicação consiga realizar algum processo inicial. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Esse tipo de funcionalidade impressiona o usuário, dando uma impressão de que a aplicação é bem robusta e profissional. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Vamos criar uma simples Activity que exibirá uma imagem na tela, a qual ficará aberta por 3 segundos. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Então vamos lá. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Para começar, crie um projeto android no eclipse. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Print do projeto: </span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIv0W3WQDPyI-VQAMOqLfPIgA2gmQXte3Uv_e3hY3Cby4Yd8QTfQTOPze1Ki-SK-8RUbMxG-6NzI17GhvjI9a9a6qCkd5DYtYASXv_Heho3LgahJktVWqgoaotmvr1GkkUgb5UbAGnC28g/s1600/tela1.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIv0W3WQDPyI-VQAMOqLfPIgA2gmQXte3Uv_e3hY3Cby4Yd8QTfQTOPze1Ki-SK-8RUbMxG-6NzI17GhvjI9a9a6qCkd5DYtYASXv_Heho3LgahJktVWqgoaotmvr1GkkUgb5UbAGnC28g/s320/tela1.tiff" width="320" /></a></div>
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">A seguir, vamos configurar o nosso arquivo de layout. A configuração é bem simples, uma vez que vamos apenas abrir uma imagem na Tela Splash Screen. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Salve a imagem na pasta res/drawable do projeto. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Em seguida, crie um novo arquivo de layout com o nome de splashscreen.xml e insira a tag do componente ImagView com as seguintes configurações: </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div style="color: #881e87; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #312eff; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black;"> </span><span style="color: #881e87;">android:src</span><span style="color: black;">=</span>"@drawable/bgpeixes" <!- Imagem --></div>
<div style="color: #881e87; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black;"> </span>android:layout_gravity<span style="color: black;">=</span><span style="color: #312eff;">"center"</span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #312eff;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Imagem utilizada no exemplo: </span></div>
<div style="color: #881e87; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: #312eff;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SdvvwvScQWTZqCtgmpoujXkjVjyV8W_y7BULpvv5iAIyFwN2rvVto1xDEFOMGcyRnoZ5WUjKXPsumSOc_CEJhUQI4SVOyJaMSJybmd9YQrI86_C0fYSJUZhuNcHnsl4rX61GgfRAiV8c/s1600/bgpeixes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SdvvwvScQWTZqCtgmpoujXkjVjyV8W_y7BULpvv5iAIyFwN2rvVto1xDEFOMGcyRnoZ5WUjKXPsumSOc_CEJhUQI4SVOyJaMSJybmd9YQrI86_C0fYSJUZhuNcHnsl4rX61GgfRAiV8c/s320/bgpeixes.jpg" width="192" /></a></div>
<div style="color: #881e87; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: #312eff;"><br /></span></div>
<div style="color: #881e87; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: #312eff;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Segue o arquivo completo.</span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"></span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span style="color: #008688;"><?</span><span style="color: #448687;">xml</span><span style="color: black;"> </span>version<span style="color: black;">=</span><span style="color: #312eff;">"1.0"</span><span style="color: black;"> </span>encoding<span style="color: black;">=</span><span style="color: #312eff;">"utf-8"</span><span style="color: #008688;">?></span></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span style="color: #008688;"><</span><span style="color: #448687;">LinearLayout</span><span style="color: black;"> </span><span style="color: #881e87;">xmlns:android</span><span style="color: black;">=</span>"http://schemas.android.com/apk/res/android"</span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><span style="color: black;"> </span>android:orientation<span style="color: black;">=</span><span style="color: #312eff;">"vertical"</span><span style="color: black;"> </span><span style="color: #008688;">></span></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
</span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<span class="Apple-style-span" style="font-family: Times; font-size: small;">
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span>ImageView</div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_gravity<span style="color: black;">=</span><span style="color: #312eff;">"center"</span></div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #881e87;">android:src</span><span style="color: black;">=</span>"@drawable/bgpeixes"<span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"></</span>LinearLayout<span style="color: #008688;">></span></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><br /></span></div>
</span><br />
<br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #312eff;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Agora crie a activity SplashScreen. </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Esta é a classe que envia um java.lang.Runnable para ser processado com atraso de 3 segundos. </span></div>
<span class="Apple-style-span" style="font-size: small;">
</span><br />
<div style="font-family: Times; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<div>
<div style="color: #6c6c6c;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"><br /></span></span></div>
<div style="color: #6c6c6c;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"><br /></span></span></div>
<div style="color: #6c6c6c;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #88185d;">public</span> <span style="color: #88185d;">class</span> SplashScreen <span style="color: #88185d;">extends</span> Activity <span style="color: #88185d;">implements</span> Runnable {</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span class="Apple-style-span" style="color: #88185d;">private</span><span style="color: black;"> </span><span class="Apple-style-span" style="color: #88185d;">final</span><span style="color: black;"> </span><span class="Apple-style-span" style="color: #88185d;">int</span><span style="color: black;"> </span><span style="color: #0023c5;">DELAY</span><span style="color: black;"> = </span><span class="Apple-style-span" style="color: #999999;">3000</span><span style="color: black;">;</span></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>@Override</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> <span style="color: #88185d;">void</span> onCreate(Bundle savedInstanceState) {</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">super</span>.onCreate(savedInstanceState);</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>setContentView(R.layout.<span style="color: #0023c5;">splashscreen</span>);</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>Handler h = <span style="color: #88185d;">new</span> Handler();</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>h.postDelayed(<span style="color: #88185d;">this</span>, <span style="color: #0023c5;">DELAY</span>);</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> <span style="color: #88185d;">void</span> run() {</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>startActivity(<span style="color: #88185d;">new</span> Intent(<span style="color: #88185d;">this</span>, Main.<span style="color: #88185d;">class</span>));</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>finish();</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;">
<br /></div>
<div style="color: #6c6c6c; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
}</div>
</div>
<span class="Apple-style-span" style="font-size: small;">
</span><br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #88185d; font-size: small;"><br /></span></div>
</div>
<span class="Apple-style-span" style="font-size: small;">
</span><br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">O exemplo tem uma simples activity que mostra uma imagem na tela, Enquanto isso um handler foi criado, e o método postDelayd(Runnable,delayMillis) foi utilizado para agendar um java.lang.Runnable com atraso de 3 segundos.</span></span></div>
<span class="Apple-style-span" style="font-size: small;">
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><span class="Apple-style-span" style="color: #e69138;">Importante:</span> Configure a SpashScreen para a primeira activity da aplicação, que está configurada com a acão MAIN e categoria LAUNCHER no AndroidManifest.xml. </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Para melhorar o visual da sua aplicação, vamos retirar a barra de titulo da activity. </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
</span><span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">No AndroidManifest.xml na tag activity insira o seguinte código: <span class="Apple-style-span" style="color: #312eff;"><span style="color: #881e87;">android:theme</span></span><span class="Apple-style-span" style="color: #312eff;"><span style="color: black;">=</span></span><span class="Apple-style-span" style="color: #312eff;">"@android:style/Theme.Black.NoTitleBar"</span></span><br />
<br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
</div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"> <</span>activity<span style="color: black;"> </span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #881e87;">android:name</span>=<span style="color: #312eff;">".Main"</span></div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #881e87;">android:label</span><span style="color: black;">=</span>"@string/app_name"</div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #881e87;">android:theme</span><span style="color: black;">=</span>"@android:style/Theme.Black.NoTitleBar"<span style="color: #008688;">></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"></</span><span style="color: #448687;">activity</span><span style="color: #008688;">></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="color: #008688;"><br /></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Faça o mesmo para a Activity SplashScreen. </span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Rode a aplicação, e aí está a sua Splash Screen. </span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Até mais !</span></div>
<span class="Apple-style-span" style="font-size: small;"></span><br />
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-style-span" style="font-size: small;"><br /></span></div>
<span class="Apple-style-span" style="font-size: small;">
</span><br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #312eff;"><br /></span></div>Anonymoushttp://www.blogger.com/profile/05559454207956023443noreply@blogger.com0tag:blogger.com,1999:blog-5185910518697051325.post-4149213711676080752012-05-10T14:20:00.001-07:002012-05-10T20:25:00.454-07:00Criando a tela principal - Dashboard<span class="Apple-style-span" style="color: #6aa84f; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: large;">( Android )</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">No google I/O 2011 foram apresentadas diversas palestras sobre android, e o Google criou um aplicativo demonstrando algumas boas práticas no desenvolvimento de aplicação mobile para Android. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Essa aplicação se chama iosched e pode se encontrada no site http://code.google.com/p/iosched </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Uma das funcionalidades que essa aplicação demonstra é o padrão dashboard para a tela inicial, onde temos o menu da aplicação. Felizmente o Google liberou o código-fonte da classe DashboardLayout, que pode ser encontrada neste link: </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">http://iosched.googlecode.com/hg//android/src/com/google/android/apps/iosched/ui/widget/DashboardLayout.java</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="color: orange;">Obs: É a mesma classe utilizada pelo google para criar a tela principal do app Google+ p/ Android</span></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="color: orange;"><br /></span></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">É, eu sei. Essa url é ridiculamente grande. A classe está escondida nas profundezas dos servidores do Google. Rsrsrsrsrs </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Essa classe é um gerador de layout customizado que vai organizar as views - neste caso, botões - da tela principal em linhas e colunas. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Beleza, agora que você já baixou a classe DashboardLayout.java, vamos criar o projeto. Meu objetivo não é ensinar como usar o eclipse, então eu parto do pré-suposto que todos saibam criar um projeto Android no mesmo. Pode dar o nome que preferir ao projeto. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Print do projeto criado: </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2DPUY6XilJwFMxaZQFn7q-9rhyrivsQ2O7FeMI8qq2sTBCen2fsHLORCGZ3WGseymxeIbE6y5Xb8_K8YUQZQeP7mU0L8aMhylfQv4ua7e2ZZCoMmBXUwDLfR9c4Ivdt4BdvmoKUmv4cb/s1600/tela1.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2DPUY6XilJwFMxaZQFn7q-9rhyrivsQ2O7FeMI8qq2sTBCen2fsHLORCGZ3WGseymxeIbE6y5Xb8_K8YUQZQeP7mU0L8aMhylfQv4ua7e2ZZCoMmBXUwDLfR9c4Ivdt4BdvmoKUmv4cb/s320/tela1.tiff" width="320" /></a></div>
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Vamos copiar essa classe para nosso projeto, inserindo-a no pacote com.google.android.apps.iosched.ui.widget A única alteração que vamos fazer no código-fonte é configurar o números de colunas para 2.</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Para isso, encontre o seguinte trecho de código na classe DashboardLayout: int cols = 1; , altere o valor de cols para 2. </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Print - pacote com.google.android.apps.iosched.ui.widget com a classe DashboardLayout inserida: </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFRbO1iY-NpS5tLcfTaxWnJZRIIC0JPm-YglAAlxz4qCyY9o4OUHE6h0hvOxkIlOVu-AnUGrTG3H37rIclsqpqLuOMw942StD4FwKk7jFTQ2cp2-supjSuR3hletde7_iDETHVuSkonjd7/s1600/tela2.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFRbO1iY-NpS5tLcfTaxWnJZRIIC0JPm-YglAAlxz4qCyY9o4OUHE6h0hvOxkIlOVu-AnUGrTG3H37rIclsqpqLuOMw942StD4FwKk7jFTQ2cp2-supjSuR3hletde7_iDETHVuSkonjd7/s320/tela2.tiff" width="320" /></a></div>
<br />
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">O próximo passo é customizar o arquivo /res/layout/main.xml para utilizar o DashboardLayout. Felizmente esse layout é mágico e vai fazer todo o trabalho pessado. Rsrsrsrsrs </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Podem fazer o download das imagens utilizadas no exemplo: </span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">http://www.theheadsman.com.br/exemploblog.zip</span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Segue o código: </span><br />
<br />
<br />
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><?</span><span style="color: #448687;">xml</span><span style="color: black;"> </span>version<span style="color: black;">=</span><span style="color: #312eff;">"1.0"</span><span style="color: black;"> </span>encoding<span style="color: black;">=</span><span style="color: #312eff;">"utf-8"</span><span style="color: #008688;">?></span></div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><</span><span style="color: #448687;">LinearLayout</span><span style="color: black;"> </span><span style="color: #881e87;">xmlns:android</span><span style="color: black;">=</span>"http://schemas.android.com/apk/res/android"</div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:background<span style="color: black;">=</span><span style="color: #312eff;">"@color/fundo"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:gravity<span style="color: black;">=</span><span style="color: #312eff;">"center"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:orientation<span style="color: black;">=</span><span style="color: #312eff;">"vertical"</span><span style="color: black;"> </span><span style="color: #008688;">></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">include</span><span style="color: black;"> </span><span style="color: #881e87;">layout</span><span style="color: black;">=</span>"@layout/include_header"<span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span>com.google.android.apps.iosched.ui.widget.DashboardLayout</div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="text-decoration: underline;">android:layout_height</span><span style="color: black; text-decoration: underline;">=</span><span style="color: #312eff; text-decoration: underline;">"fill_parent"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_weight<span style="color: black;">=</span><span style="color: #312eff;">"1"</span><span style="color: black;"> </span><span style="color: #008688;">></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><</span><span style="color: #448687;">Button</span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #881e87;">android:id</span>=<span style="color: #312eff;">"@+id/bt1"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:background<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/btn1"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:drawablePadding<span style="color: black;">=</span><span style="color: #312eff;">"10dp"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><</span><span style="color: #448687;">Button</span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #881e87;">android:id</span>=<span style="color: #312eff;">"@+id/bt2"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:background<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/btn2"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:drawablePadding<span style="color: black;">=</span><span style="color: #312eff;">"10dp"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><</span><span style="color: #448687;">Button</span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #881e87;">android:id</span>=<span style="color: #312eff;">"@+id/bt3"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:background<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/btn3"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:drawablePadding<span style="color: black;">=</span><span style="color: #312eff;">"10dp"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><</span><span style="color: #448687;">Button</span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #881e87;">android:id</span>=<span style="color: #312eff;">"@+id/bt4"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_width<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:layout_height<span style="color: black;">=</span><span style="color: #312eff;">"wrap_content"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:background<span style="color: black;">=</span><span style="color: #312eff;">"@drawable/btn4"</span></div>
<div style="color: #881e87; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span>android:drawablePadding<span style="color: black;">=</span><span style="color: #312eff;">"10dp"</span><span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
</div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"></</span>com.google.android.apps.iosched.ui.widget.DashboardLayout<span style="color: #008688;">></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #312eff; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"> </span><span style="color: #008688;"><</span><span style="color: #448687;">include</span><span style="color: black;"> </span><span style="color: #881e87;">layout</span><span style="color: black;">=</span>"@layout/include_footer"<span style="color: black;"> </span><span style="color: #008688;">/></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"></</span>LinearLayout<span style="color: #008688;">></span></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><br /></span></div>
<div style="color: #448687; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #008688;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Note que quando criamos a tag do DashboardLayout utilizamos o nome completo da classe, pois ela é uma View customizada. </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">com.google.android.apps.iosched.ui.widget.DashboardLayout</span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">( Futuramente estarei falando de Views customizadas ). </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Print do main.xml </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCTOlksodCchJYXcswrjkI7Ix8ffZ9f_LKwx18JBSfvACHgY0q3LUcgWdtbKQ620r7i2vGB9Yrz1ZCQpf6MVXctnZFV_CtXXeCvmbi9RB1aRZ11eqncE9zZT0sFcZW67GPyJX_dboveZcz/s1600/tela3.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCTOlksodCchJYXcswrjkI7Ix8ffZ9f_LKwx18JBSfvACHgY0q3LUcgWdtbKQ620r7i2vGB9Yrz1ZCQpf6MVXctnZFV_CtXXeCvmbi9RB1aRZ11eqncE9zZT0sFcZW67GPyJX_dboveZcz/s320/tela3.tiff" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">O Arquivo /res/layout/main.xml representa o menu principal com o dashboard e possui os quatros botões da aplicação. Note que no meu layout eu incluir outros dois arquivos para criar o cabeçalho e o rodapé. (Fica a critério de vocês a forma como vão configurar os seus projetos) </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">É para fechar, vamos adicionar eventos aos botões. </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Voltado a classe principal do projeto, Main.java.</span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">O que precisamos implementar agora são os eventos dos botões. Para isso vamos alterar o código-fonte da classe Main conforme demonstrado a seguir. ( Que no meu caso está com o nome de ExemploDashboard ).</span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Monaco; font-size: 11px;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Monaco; font-size: 11px;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="font-family: Monaco; font-size: 11px;"></span></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #88185d;">public</span> <span style="color: #88185d;">class</span> ExemploDashboard <span style="color: #88185d;">extends</span> Activity <span style="color: #88185d;">implements</span> OnClickListener {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">private</span> Button <span style="color: #0023c5;">bt1</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">private</span> Button <span style="color: #0023c5;">bt2</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">private</span> Button <span style="color: #0023c5;">bt3</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">private</span> Button <span style="color: #0023c5;">bt4</span>;</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #6c6c6c; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>@Override</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> <span style="color: #88185d;">void</span> onCreate(Bundle savedInstanceState) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">super</span>.onCreate(savedInstanceState);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>setContentView(<span style="text-decoration: underline;">R</span>.layout.main);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt1</span> = (Button) findViewById(<span style="text-decoration: underline;">R</span>.id.bt1);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt1</span>.setOnClickListener(<span style="color: #88185d;">this</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt2</span> = (Button) findViewById(<span style="text-decoration: underline;">R</span>.id.bt2);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt2</span>.setOnClickListener(<span style="color: #88185d;">this</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt3</span> = (Button) findViewById(<span style="text-decoration: underline;">R</span>.id.bt3);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt3</span>.setOnClickListener(<span style="color: #88185d;">this</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt4</span> = (Button) findViewById(<span style="text-decoration: underline;">R</span>.id.bt4);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #0023c5;">bt4</span>.setOnClickListener(<span style="color: #88185d;">this</span>);</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">public</span> <span style="color: #88185d;">void</span> onClick(View v) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #88185d;">if</span> (v == <span style="color: #0023c5;">bt1</span>) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>/* <span style="text-decoration: underline;">Implemente</span> <span style="text-decoration: underline;">você</span> */</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>} <span style="color: #88185d;">else</span> <span style="color: #88185d;">if</span> (v == <span style="color: #0023c5;">bt2</span>) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>/* <span style="text-decoration: underline;">Implemente</span> <span style="text-decoration: underline;">você</span> */</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>} <span style="color: #88185d;">else</span> <span style="color: #88185d;">if</span> (v == <span style="color: #0023c5;">bt3</span>) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>/* <span style="text-decoration: underline;">Implemente</span> <span style="text-decoration: underline;">você</span> */</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>} <span style="color: #88185d;">else</span> <span style="color: #88185d;">if</span> (v == <span style="color: #0023c5;">bt4</span>) {</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="color: #448567; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>/* <span style="text-decoration: underline;">Implemente</span> <span style="text-decoration: underline;">você</span> */</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;">
<br /></div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;">
}</div>
<br />
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #008688;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #008688;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #008688;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #008688;"> </span><span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small;">Por hoje é só pessoal ! </span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #008688;"><br /></span></div>
<div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #008688;"><br /></span></div>
<br />
<br />Anonymoushttp://www.blogger.com/profile/05559454207956023443noreply@blogger.com0tag:blogger.com,1999:blog-5185910518697051325.post-4282737147486573792012-05-07T19:42:00.000-07:002012-05-07T19:52:21.163-07:00Lendo texto do Conteúdo Raw na pasta Resource.<span style="color: #6aa84f; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: large;">( Android )</span><br />
<br />
<br />
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">É possível armazenar o conteúdo na pasta raw e fazer a leitura utilizando o método abaixo ...</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Primeiros passos: </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
</div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">1. Crie uma pasta raw em res/</span></div>
<div class="p1">
</div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">2. Crie um arquivo de texto e salve na pasta res/raw, que você acabou de criar</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">3. Criar Método chamado readTextResource() </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">4. Utilize o código abaixo para ler os dados</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
</div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">StringBuffer strBuffer = new StringBuffer();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> InputStream inputStream = null;</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> try {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> inputStream = owner.getResources().openRawResource(resourceId);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> String str = br.readLine();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> while (str != null) {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> strBuffer.append(str);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> str = br.readLine();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> } catch (IOException e) { </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> } finally {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> try {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> if (inputStream != null) {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> inputStream.close();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> } catch (IOException e) { </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
</div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">5. Retorna o valor StringBuffer.</span></div>
<div class="p1">
</div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">6. Se você precisa de um formato html, você pode usar a classe util html</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Html.fromHtml (text); </span></div>
<br />
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<b><span style="color: orange; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Exemplo completo do código </span></b></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
</div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">public class MinhaActivity extends Activity {</span></div>
<div class="p2">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> private Spanned mText = null;</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> private TextView mTextView;</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> public void onCreate(Bundle savedInstanceState) { </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> super.onCreate(savedInstanceState);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> setContentView(R.layout.main);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> mTextView = (TextView) findViewById(R.id.sampleText);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> if (mText == null) {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">// Passando o nome do arquivo como parametro utilizando a Class R e o contexto</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> String text = readTextResource(R.raw.meuarquivo, this);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> mText = Html.fromHtml(text);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> mTextView.setText(mText);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p2">
<br /></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> public String readTextResource(int resourceId, Activity owner) {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> StringBuffer strBuffer = new StringBuffer(); </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> InputStream inputStream = null;</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> try {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> inputStream = owner.getResources().openRawResource(resourceId);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> String str = br.readLine();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> while (str != null) {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> strBuffer.append(str);</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> str = br.readLine();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> } catch (IOException e) { </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> } finally {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> try {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> if (inputStream != null) {</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> inputStream.close();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> } catch (IOException e) { </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> }</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> return strBuffer.toString();</span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> } </span></div>
<div class="p1">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">}</span></div>
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/05559454207956023443noreply@blogger.com0tag:blogger.com,1999:blog-5185910518697051325.post-643275165454102712012-05-03T23:53:00.001-07:002012-05-09T23:57:42.990-07:00Ciclo de vida de uma activity (atividade)<div style="text-align: justify;">
<span style="color: #6aa84f; font-size: large;"><span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">( </span></span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;">Android )</span></span></span><br />
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><br /></span></span><br />
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><br /></span></span><br />
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">É muito importante entender o ciclo de vida de uma activity. isto é, os possíveis estados em que ela se encontra, que podem ser: executando, temporariamente interrompida em segundo plano ou completamente destruida.</span></span></div>
<div style="text-align: justify;">
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Existem vários métodos que podem ser implementados na activity para controlar o estado da aplicação. </span></span></div>
<div style="text-align: justify;">
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Vou detalhar cada método do ciclo de vida da activity: </span></span><br />
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b>onCreate(Bundle) </b> O método onCreate(Bundle) é obrigatório e é chamado uma única vez. Nesse método deve-se criar uma view e chamar o método setContentView(View) para exibir-la na tela. Logo depois que o método onCreate(Bundle) é finalizado, o método onStart() é chamado para iniciar o ciclo de vida visível da activity.</span></span><br />
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><b><br /></b></span></span><br />
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;">onStart() </b><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;"> O método onStart() é chamado quando a activity está ficando visível ao usuário e já tem uma view. Pode ser chamado depois dos métodos onCreate(Bundle) e onRestart(), dependendo do estado da aplicação. O próximo método depois do onStart() é sempre onResume().</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><b><br /></b></span></span><br />
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;">onRestart() </b><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;">O método onRestart() é chamado quando a activity foi parada temporariamente e está sendo iniciada outra vez. O método onResume() chama o método onStart() de forma automática.</span><br />
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><b><br /></b></span></span><br />
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;">onResume() </b><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;"> O método onResume() é chamado quando uma activity está no topo da pilha "activity stack", e e dessa forma já está executando como a activity principal e pronta para interagir com o usuário. Podemos dizer que o método onResume() representa o estado de que a activity está executando. O método é chamado sempre depois do onStart(). </span><br />
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><br /></span></span><br />
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b>onPause()</b> Se algum evento ocorrer, como o celular entrar em modo de espera/dormir para ecomonizar energia ou uma Intent está sendo processsada, a activity do topo da pilha que está executando pode ser temporariamente interrompida. Para isso o método onPause() é chamado para salvar o estado da aplicação, para que posteriormente quando a activity voltar a executar, tudo possa ser recuperado, se necessário no método onResume(). </span></span><br />
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><br /></span></span><br />
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b>onStop() </b> O método onStop() é chamado quando a activity está sendo encerrada, é não está mais visível ao usuário, o que o que pode ocorrer quando outra activity é iniciada, por exemplo. Depois de parada a activity pode ser reiniciada se necessário. Caso isso ocorra, o método onResume() é chamado para reiniciar a activity. Caso a activity fique muito tempo parada em segundo plano e o sistema operacional do Android precise limpar os recursos para liberar memória , o método onDestroy() pode ser automáticamente chamado, para remover completamente a activity da pilha. </span></span><br />
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="line-height: 14px;"><b><br /></b></span></span><br />
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;">onDestroy()</b><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 14px;"> O método onDestroy literalmente encerra a execução de uma activity. O método onDestroy() pode ser chamado automaticamente pelo sistema operacional para liberar recursos ou pode se chamado pela aplicação pela método finish() da classe Activity. depois do método onDestroy() ter executado a activity é removida completamente da pilha e seu processo no sistema operacional também é completamente encerrado.</span></div>
<div style="text-align: justify;">
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="font-size: 11px;"><br /></span></span></span><br />
<span style="line-height: 14px;"><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><span style="font-size: 11px;"><br /></span></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkZPimAnlMRAR83OhEag-e2glfl-8BYwm7y06tBWRNxzug7gppUrD3hgPbux_vH_MQyayASHQoCC6S4RPM5NvQ76x3T51Z34uhb8IyS5q6vU0Htxsd97t78nuZ0JtbPjigyK4RdS3jMEp6/s1600/Arquivo-Escaneado-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkZPimAnlMRAR83OhEag-e2glfl-8BYwm7y06tBWRNxzug7gppUrD3hgPbux_vH_MQyayASHQoCC6S4RPM5NvQ76x3T51Z34uhb8IyS5q6vU0Htxsd97t78nuZ0JtbPjigyK4RdS3jMEp6/s320/Arquivo-Escaneado-1.jpg" width="320" /></a></div>
</div>Anonymoushttp://www.blogger.com/profile/05559454207956023443noreply@blogger.com3