App Update dialog Digital progress bar

Source: Internet
Author: User
<span id="Label3"></p><p style="text-align: center"><p style="text-align: center"><span style="font-size: 18px"><strong>App Update dialog Digital progress bar</strong></span></p></p><p style="text-align: center"><p style="text-align: center"></p></p><p style="text-align: left"><p style="text-align: left"><span style="font-size: 14px"><span style="font-size: 16px"><strong></strong> </span> <span style="font-size: 15px">now the general Android software needs to be constantly updated, when you open an app, if there is a new version, it will prompt you to have a new version needs to be Updated. When there is an update, will pop up a prompt box, click on the download,</span> </span> <span style="font-size: 15px">then in the notification to create</span> <span style="font-size: 15px">a digital progress bar to download, downloaded successfully before the installation Interface. </span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"><span style="font-size: 16px"><strong>Effect:</strong></span></p></p><p style="text-align: center"><p style="text-align: center"><span style="font-size: 16px"><strong></strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"><span style="font-size: 16px"><strong><strong>Development Environment: androidstudio2.2.1+gradle-2.14.1</strong></strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p><p><span style="font-size: 16px"><strong>Knowledge Involved:</strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p><p><span style="font-size: 15px"><strong>1.Handler mechanism</strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"><span style="font-size: 15px"><strong>2. Custom Controls +canvas Painting</strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"><span style="font-size: 15px"><strong>3. Custom Dialog</strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"><span style="font-size: 16px"><strong>Part of the Code:</strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><pre><span style="color: #0000ff"><span style="color: #0000ff"></span> public</span> <span style="color: #0000ff"><span style="color: #0000ff">class</span></span>Numberprogressbar<span style="color: #0000ff"><span style="color: #0000ff">extends</span></span><span style="color: #000000"><span style="color: #000000">View {</span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* The color of the right unfinished progress bar</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>Paintstartcolor = 0xffe5e5e5<span style="color: #000000"><span style="color: #000000">; </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Contxt</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span><span style="color: #000000"><span style="color: #000000">Context context; </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* The main thread passes over the process 0-100</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">progress; </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Get the width of the custom view</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">viewwidth; </span></span><span style="color: #0000ff"><span style="color: #0000ff">Private</span></span><span style="color: #000000"><span style="color: #000000">RECTF pieoval; </span></span><span style="color: #0000ff"><span style="color: #0000ff">Private</span></span><span style="color: #000000"><span style="color: #000000">RECTF pieovalin; </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Get the Y-axis center point of the custom view</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">viewcentery; </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Completed brushes</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span>Paint Paintinit =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Paint (); </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Properties of the progress bar brush are not completed</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span>Paint Paintstart =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Paint (); </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Brush of the Great circle</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span>Paint Paintendbig =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Paint (); </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Small circle of brushes</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span>Paint Paintsmall =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Paint (); </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Paint the middle of the percent text brush</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span>Paint Painttext =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Paint (); </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* The width of the text to be drawn</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">textWidth; </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* The coordinates of the bottom when drawing text</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">float</span></span><span style="color: #000000"><span style="color: #000000">textbottomy; </span></span><span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>smallr;<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">radius of the small circle</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>bigr;<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Circle Radius</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">float</span></span><span style="color: #000000"><span style="color: #000000">radius; </span></span><span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>jR;<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Bubble Rectangle</span></span> <span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* The length of the total text movement (that is, the length from 0% to 100% text to the Left)</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">private int totalmovedlength;</span></span> <span style="color: #0000ff"><span style="color: #0000ff"></span> public</span><span style="color: #000000"><span style="color: #000000">numberprogressbar (context context, attributeset attrs) {</span></span><span style="color: #0000ff"><span style="color: #0000ff">Super</span></span><span style="color: #000000"><span style="color: #000000">(context, attrs); </span></span><span style="color: #0000ff"><span style="color: #0000ff"></span> this</span>. Context =<span style="color: #000000"><span style="color: #000000">context; </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">initializing data in the constructor</span></span>Smallr = dip2px (context, 4);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Small Circle Radius</span></span>BIGR = dip2px (context, 8);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Circle Radius</span></span>Radius = dip2px (context, 10)/2;<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">progress bar Height</span></span>JR = dip2px (context, 6);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Rectangle</span></span><span style="color: #000000"><span style="color: #000000">InitData (); } </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* Initialize Data</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">void</span></span><span style="color: #000000"><span style="color: #000000">initdata () {</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">properties of the progress bar brush not completed</span></span><span style="color: #000000"><span style="color: #000000">Paintstart.setcolor (paintstartcolor); Paintstart.setstrokewidth (dip2px (context,</span></span>1<span style="color: #000000"><span style="color: #000000">)); Paintstart.setdither (</span></span><span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">); Paintstart.setantialias (</span></span><span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">); Paintstart.setstyle (Paint.Style.FILL); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">properties of the completed progress bar Brush</span></span><span style="color: #000000"><span style="color: #000000">paintinit.setcolor (context.getresources (). getColor (r.color.blue)); Paintinit.setstrokewidth (dip2px (context,</span></span>1<span style="color: #000000"><span style="color: #000000">)); Paintinit.setantialias (</span></span><span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">); Paintinit.setdither (</span></span><span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">); Paintinit.setstyle (Paint.Style.FILL); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Small Circle Brush</span></span><span style="color: #000000"><span style="color: #000000">Paintsmall.setcolor (color.white); Paintsmall.setantialias (</span></span><span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">); Paintsmall.setstyle (Paint.Style.FILL); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">large <span style="color: #008000">Circle Brush</span></span><span style="color: #000000"><span style="color: #000000">paintendbig.setcolor (context.getresources (). getColor (r.color.blue)); Paintendbig.setantialias (</span></span><span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">); Paintendbig.setstyle (Paint.Style.FILL); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">properties of percent text brushes</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>painttextsizepx = sp2px (context, 11);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">set the size of percent text</span></span><span style="color: #000000"><span style="color: #000000">painttext.setcolor (context.getresources (). getColor (r.color.blue)); Painttext.settextsize (painttextsizepx); Painttext.setantialias (</span></span><span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">); Painttext.settypeface (typeface.default_bold); } @Override</span></span><span style="color: #0000ff"><span style="color: #0000ff">protected</span></span> <span style="color: #0000ff"><span style="color: #0000ff">void</span></span>Onmeasure (<span style="color: #0000ff"><span style="color: #0000ff">int</span></span>widthmeasurespec,<span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">HEIGHTMEASURESPEC) { </span></span><span style="color: #0000ff"><span style="color: #0000ff">Super</span></span><span style="color: #000000"><span style="color: #000000">. Onmeasure (widthmeasurespec, heightmeasurespec); } @Override</span></span><span style="color: #0000ff"><span style="color: #0000ff">protected</span></span> <span style="color: #0000ff"><span style="color: #0000ff">void</span></span><span style="color: #000000"><span style="color: #000000">OnDraw (canvas Canvas) {</span></span><span style="color: #0000ff"><span style="color: #0000ff">Super</span></span><span style="color: #000000"><span style="color: #000000">. OnDraw (canvas); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">get float Type Progress</span></span> <span style="color: #0000ff"><span style="color: #0000ff">float</span></span>Progressfloat = progress/100.0f<span style="color: #000000"><span style="color: #000000">; </span></span><span style="color: #0000ff"><span style="color: #0000ff">int</span></span>Viewheight = Getmeasuredheight ();<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">get the height of the control</span></span><span style="color: #000000"><span style="color: #000000">Viewwidth</span></span>= Getmeasuredwidth ()-4 *<span style="color: #000000"><span style="color: #000000">jR; Viewcentery</span></span>= viewheight-<span style="color: #000000"><span style="color: #000000">bigr; </span></span><span style="color: #0000ff"><span style="color: #0000ff">float</span></span>Currentmovedlen = viewwidth * progressfloat + 2 *<span style="color: #000000"><span style="color: #000000">jR; String Str</span></span>= Progress + "%"<span style="color: #000000"><span style="color: #000000">; Rect bounds</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Rect (); Painttext.gettextbounds (str,</span></span>0<span style="color: #000000"><span style="color: #000000">, Str.length (), bounds); TextWidth</span></span>=<span style="color: #000000"><span style="color: #000000">Bounds.width (); Textbottomy</span></span>=<span style="color: #000000"><span style="color: #000000">bounds.height ();</span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000">* 1: The text of the painting * 2. Displacement of x distance * 3. Offset from Y * 4. Brush Object</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span><span style="color: #000000"><span style="color: #000000">canvas.drawtext (str, Currentmovedlen</span></span>-textwidth/2<span style="color: #000000"><span style="color: #000000">, Viewcentery</span></span>-smallr/2-bigr/2-2 * JR + TEXTBOTTOMY/2<span style="color: #000000"><span style="color: #000000">, painttext);</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">text</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">the rounded rectangle is initially</span></span>Canvas.drawroundrect (<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (2 * jR, viewcentery-<span style="color: #000000"><span style="color: #000000">radius, currentmovedlen, viewcentery</span></span>+<span style="color: #000000">radius), radius, <span style="color: #000000">radius, paintinit); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">rounded rectangle--in Progress</span></span>Canvas.drawroundrect (<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (currentmovedlen, viewcentery-radius, viewwidth + 2 *<span style="color: #000000"><span style="color: #000000">jR, viewcentery</span></span>+<span style="color: #000000">radius), radius, <span style="color: #000000">radius, paintstart); Pieoval</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (currentmovedlen-bigr, viewcentery-bigr, Currentmovedlen + bigr, Viewcentery +<span style="color: #000000"><span style="color: #000000">bigr); Pieovalin</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (currentmovedlen-smallr, viewcentery-smallr, Currentmovedlen + smallr, Viewcentery +<span style="color: #000000"><span style="color: #000000">smallr); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">great <span style="color: #008000">Circle</span></span>Canvas.drawarc (pieoval, 0, 360,<span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">, paintendbig); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Small Circle</span></span>Canvas.drawarc (pieovalin, 0, 360,<span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">, paintsmall); } </span></span><span style="color: #008000"><span style="color: #008000">/**</span></span><span style="color: #008000"><span style="color: #008000"> * </span></span><span style="color: #808080"><span style="color: #808080">@param</span></span><span style="color: #008000"><span style="color: #008000">progress the current progress in the external pass</span></span><span style="color: #008000"><span style="color: #008000">*/</span></span> <span style="color: #0000ff"><span style="color: #0000ff"></span> public</span> <span style="color: #0000ff"><span style="color: #0000ff">void</span></span>Setprogress (<span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">Progress) { </span></span><span style="color: #0000ff"><span style="color: #0000ff"></span> this</span>. Progress =<span style="color: #000000"><span style="color: #000000">progress; Invalidate (); } </span></span><span style="color: #0000ff"><span style="color: #0000ff"></span> public</span> <span style="color: #0000ff"><span style="color: #0000ff">Static</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>dip2px (Context ctx,<span style="color: #0000ff"><span style="color: #0000ff">float</span></span><span style="color: #000000"><span style="color: #000000">Dp) { </span></span><span style="color: #0000ff"><span style="color: #0000ff">float</span></span>Density =<span style="color: #000000"><span style="color: #000000">ctx.getresources (). getdisplaymetrics (). density; </span></span><span style="color: #0000ff"><span style="color: #0000ff">int</span></span>PX = (<span style="color: #0000ff"><span style="color: #0000ff">int</span></span>) (DP * density + 0.5f<span style="color: #000000"><span style="color: #000000">); </span></span><span style="color: #0000ff"><span style="color: #0000ff">return</span></span><span style="color: #000000"><span style="color: #000000">px; } </span></span><span style="color: #0000ff"><span style="color: #0000ff"></span> public</span> <span style="color: #0000ff"><span style="color: #0000ff">Static</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>sp2px (context context,<span style="color: #0000ff"><span style="color: #0000ff">float</span></span><span style="color: #000000"><span style="color: #000000">Spvalue) { </span></span><span style="color: #0000ff"><span style="color: #0000ff">return</span></span>(<span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">) typedvalue.applydimension (typedvalue.complex_unit_sp, spvalue, context.getresources (). getDisplayMetrics ()); }}</span></span></pre><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p style="text-align: left"><p style="text-align: left"><span style="font-size: 18px; color: #ff0000"><strong>SOURCE Download ...</strong></span></p></p><p style="text-align: left"><p style="text-align: left"></p></p><p><p>App Update dialog Digital progress bar</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.