App Update dialog Digital progress bar
Last Update:2017-04-11
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>