"Android" 21.2 Canvas and paint

Source: Internet
Author: User
<span id="Label3"></p><p><p>Category: C #, Android, VS2015;</p></p><p><p>Date created: 2016-03-19 I. Introduction to Canvas objects</p></p><p><p>The canvas (canvas Object) is another graphic-image-drawing technique that is very similar to traditional frameworks like System.Drawing or iOS core graphics, which provides the maximum control for creating 2D graphics that can be used to solve situations where artboard resources are difficult to handle. For example, draw a custom slider Control's appearance, and so On.</p></p><p><p>Canvas can be understood as a piece of memory that the system provides to us (but in fact it is just a set of drawing apis, the real memory is the bitmap below), and it provides a whole range of methods for manipulating this memory area, all of which are drawing Apis. That is to say, in this way we have been able to draw a stroke or use graphic to plot what we need, to draw what is to show what is controlled by Ourselves.</p></p><p><p>1. Canvas API</p></p><p><p>Although the artboard (drawables) is powerful but has its limitations, some complex features cannot be implemented with it. For example, apply a filter to a picture taken by a camera on your device for red-eye effects, and so On. To implement these features, you can use the canvas API to fine-grained control over them so that you can selectively change the colors in a particular part of a picture.</p></p><p><p>The Canvas API draws 2D graphics very much like a painter applying different colors of paint to different parts of the Model. or, each drawing operation on a canvas overrides part of the underlying bitmap, overwriting if it overlaps the part that was originally DRAWN.</p></p><p><p>2. Get the Canvas object</p></p><p><p>There are two ways of getting a canvas object.</p></p><p><p>(1) 1th Way</p></p><p><p>Define the bitmap object, and then instantiate a canvas object. For example:</p></p><p><p>Bitmap Bitmap = Bitmap.createbitmap (+, Bitmap.Config.Argb8888);</p></p><p><p>Canvas canvas = new Canvas (b);</p></p><p><p>(2) 2nd Way</p></p><p><p>Gets a canvas object by overriding the OnDraw () callback method of the view class.</p></p><p><p>3. Manipulating Canvas objects</p></p><p><p>Once you have the canvas object, you can manipulate it, for example:</p></p><p><p>L Canvas.drawpaint (paint P) – fills the entire bitmap cloth with the specified paint Object.</p></p><p><p>L Canvas.drawpath (path path, paint Paint) – Draws the specified geometry shape with the specified paint Object.</p></p><p><p>L canvas.drawtext (String text, float x, float y, paint paint) – draws text at the (x, y) coordinates of the canvas with the specified paint object, such as specifying colors with a paint object. Ii. Common Properties and methods of paint objects</p></p><p><p>Canvas is manipulated by the paint object, so let's start with the basic usage of the paint object.</p></p><p><p>Paint is used to specify the color, size, etc. of a graphic or text. Common properties and methods are as Follows.</p></p><p><p>1, anti-aliasing</p></p><p><p>AntiAlias property: anti-aliasing, true: anti-aliasing, false: not Eliminated.</p></p><p><p>2. Brush Color</p></p><p><p>Color Property: Gets or sets the Color.</p></p><p><p>3. Alpha Opacity</p></p><p><p>Alpha Property: Gets or sets the Alpha opacity, in the range 0~255.</p></p><p><p>4. Font Size</p></p><p><p>Textsize property: Gets or sets the font size.</p></p><p><p>5. Contour and fill</p></p><p><p>SetStyle () method: Sets the brush style, whether the outline or fill is drawn.</p></p><p><p>Strokewidth Property: Gets or sets the width of the Outline.</p></p><p><p>6. Set Paint Object Color</p></p><p><p>Setargb (int a, int r, int g, int B)</p></p><p><p>Sets the Paint object color, and Parameter 1 is Alpha opacity (0~255).</p></p><p><p>7. Set the text zoom multiplier</p></p><p><p>Settextscalex (float ScaleX)</p></p><p><p>Sets the text zoom multiplier, and 1.0f is the original size.</p></p><p><p>8. Set the Underline</p></p><p><p>Setunderlinetext (booleanunderlinetext) three, basic usage of canvas</p></p><p><p>This approach can be divided into two types of environments: one is canvas drawing with normal view, and the other is drawing using a dedicated Surfaceview Canvas. The main difference between the two is that you can define a dedicated thread in Surfaceview to do the drawing work, and the application does not need to wait for the view brush graph to improve performance. The previous one is suitable for small, low frame rate animation, such as chess games, and the latter is mainly used in the game, high-quality animation aspects of the Drawing.</p></p><p><p>The following are common methods of the canvas class.</p></p><p><p>1. Draw a rectangle</p></p><p><p>DrawRect (RECTF rect, Paint Paint)</p></p><p><p>Draws a rectangular area, and the parameter rect represents the size of a single Motive.</p></p><p><p>2. Draw the path</p></p><p><p>DrawPath (path path, Paint Paint)</p></p><p><p>Draws a path with the path object as the parameter path.</p></p><p><p>3. Stickers</p></p><p><p>Drawbitmap (Bitmap Bitmap, rect src, rect dst, paint Paint)</p></p><p><p>Parameter bitmap is the bitmap object, the parameter src is the source area (here is bitmap), The parameter DST is the target area (should be in the Canvas's position and size), The parameter paint is the paint brush object.</p></p><p><p>NoteIf the original rect is not equal to the target rect, the performance of the method will be significantly lost if scaled and stretched.</p></p><p><p>4. Draw the Line</p></p><p><p>DrawLine (float startX, float starty, float stopx, float stopy, paintpaint)</p></p><p><p>The first two parameters are the X-and y-coordinate positions of the starting point, the last two parameters are the X-and y-coordinate positions of the end points, and the final parameter is the paint brush object.</p></p><p><p>5, Draw points</p></p><p><p>Drawpoint (float x, float y, paint Paint)</p></p><p><p>The first two parameters are x, y coordinates, and the 3rd parameter is the paint Object.</p></p><p><p>6. Draw Text</p></p><p><p>DrawText (String text, float x, floaty, paint Paint)</p></p><p><p>Canvas class In addition to the above can also depict text, parameter one is a string type of text, parameter 2 is the x axis, parameter 3 is the y axis, parameter 4 is the paint Object.</p></p><p><p>7. Draw Ellipse</p></p><p><p>DrawOval (RECTF oval, Paint Paint)</p></p><p><p>The parameter 1 is the bounding rectangle of the ellipse, and the parameter 2 is the paint object;</p></p><p><p>8. Draw a Circle</p></p><p><p>Drawcircle (float cx, float cy, float radius,paint Paint)</p></p><p><p>Parameter 1 is the x-axis of the center point, parameter 2 is the y-axis of the center point, and Parameter 3 is the Radius.</p></p><p><p>9. Arc Drawing</p></p><p><p>DrawArc (RECTF oval, Float startangle, float sweepAngle, boolean usecenter, paint Paint)</p></p><p><p>Parameter 1 is the RECTF object, the bounds of a rectangular area ellipse is used to define the shape, size, arc, parameter 2 is the starting angle (degrees) at the beginning of the arc, the parameter 3 scanning angle (degree) starts to measure clockwise, parameter 4 if true, including the arc of the center of the ellipse and close it, If false, this is an arc; parameter 5 is a paint object; four. render a graphic using the shader class</p></p><p><p>You may often see some very beautiful graphics in certain interfaces (such as screen saver or player), which are actually rendered on the basis of the original Graphics.</p></p><p><p>Android provides a shader class for rendering effects, an abstract class with many subclasses, such as the Bitmapshader class (bitmap rendering), Composeshader class (mixed rendering), lineargradient class (linear rendering), Radialgradient class (affine rendering), sweepgradient class (gradient rendering), and so On. Use the Setshader () method of the Paint object to set these render objects to be Used.</p></p><p><p>The following code demonstrates its basic usage:</p></p><p><p>Paint p = new paint ();</p></p><p><p>Shader mshader = new lineargradient (0, 0, 100, 100,</p></p><p><p>New int[] {color.red, color.green, color.yellow, color.lightgray}, null, Shader.TileMode.Repeat);</p></p><p><p>P.setshader (mshader); V. Examples</p></p><p><p>1. operation</p></p><p><p></p></p> <p><p>2. Design Steps</p></p><p><p>(1) Add Ch2102main.axml</p></p><pre><pre><span style="color: #0000ff"><?</span> <span style="color: #ff00ff">XML version= "1.0" encoding= "utf-8"</span> <span style="color: #0000ff">?></span> <span style="color: #0000ff"><</span> <span style="color: #800000"></span> <span style="color: #ff0000">xmlns:android</span><span style="color: #0000ff">= "http://schemas.android.com/apk/res/android"</span><span style="color: #ff0000"> android:o Rientation</span><span style="color: #0000ff">= "vertical"</span><span style="color: #ff0000"> android:id</span><span style="color: #0000ff">= "@+id/ch2102_root"</span><span style="color: #ff0000"> Android : layout_width</span><span style="color: #0000ff">= "match_parent"</span><span style="color: #ff0000"> android:layout_height</span><span style="color: #0000ff">= "match_parent"</span> <span style="color: #0000ff">/></span></pre></pre><p><p>(2) Add Ch2102MainActivity.cs</p></p><pre><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">System;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">System.Collections.Generic;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">system.linq;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">system.text;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">android.app;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">android.content;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">android.graphics;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">android.os;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">android.runtime;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">android.views;</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span><span style="color: #000000"><span style="color: #000000">android.widget;</span></span><span style="color: #0000ff"><span style="color: #0000ff">namespace</span></span><span style="color: #000000"><span style="color: #000000">mydemos.srcdemos{[Activity (Label</span></span>=<span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000"><span style="color: #800000">"example 21-2" Canvas Basic usage</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">)] </span></span><span style="color: #0000ff"><span style="color: #0000ff"></span> public</span> <span style="color: #0000ff"><span style="color: #0000ff">class</span></span><span style="color: #000000"><span style="color: #000000">ch2102mainactivity:activity {</span></span><span style="color: #0000ff"><span style="color: #0000ff">protected</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Override</span></span> <span style="color: #0000ff"><span style="color: #0000ff">void</span></span><span style="color: #000000"><span style="color: #000000">OnCreate (Bundle Savedinstancestate) {</span></span><span style="color: #0000ff"><span style="color: #0000ff">Base</span></span><span style="color: #000000"><span style="color: #000000">. OnCreate (savedinstancestate); Setcontentview (Resource.Layout.ch2102Main); </span></span><span style="color: #0000ff"><span style="color: #0000ff">var</span></span>Layout = findviewbyid<linearlayout><span style="color: #000000"><span style="color: #000000">(Resource.Id.ch2102_root); MyView View</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>MyView (<span style="color: #0000ff"><span style="color: #0000ff"></span> this</span><span style="color: #000000"><span style="color: #000000">); View. Setminimumwidth (layout. Width</span></span>-<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); View. Setminimumheight (layout. Height</span></span>-<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); Layout. AddView (view); } } </span></span><span style="color: #0000ff"><span style="color: #0000ff"></span> public</span> <span style="color: #0000ff"><span style="color: #0000ff">class</span></span><span style="color: #000000"><span style="color: #000000">Myview:view {</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: #0000ff"><span style="color: #0000ff"></span> public</span>MyView (context context):<span style="color: #0000ff"><span style="color: #0000ff">Base</span></span><span style="color: #000000"><span style="color: #000000">(context) {</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: #0000ff"><span style="color: #0000ff">Private</span></span> <span style="color: #0000ff"><span style="color: #0000ff">void</span></span>DrawText (canvas canvas,<span style="color: #0000ff"><span style="color: #0000ff">string</span></span>Text<span style="color: #0000ff"><span style="color: #0000ff">int</span></span>X<span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">Y) {</span></span><span style="color: #0000ff"><span style="color: #0000ff">using</span></span>(Paint p =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Paint ()) {p.color</span></span>=<span style="color: #000000"><span style="color: #000000">color.black; P.textsize</span></span>=<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">; P.antialias</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">true</span></span>;<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">anti- <span style="color: #008000">aliasing</span></span><span style="color: #000000"><span style="color: #000000">Canvas. DrawText (text, x, y, p); } } </span></span><span style="color: #0000ff"><span style="color: #0000ff">protected</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Override</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">Base</span></span><span style="color: #000000"><span style="color: #000000">. OnDraw (canvas); Color Drawcolor</span></span>=<span style="color: #000000"><span style="color: #000000">color.red; Paint P</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Paint (); P.color</span></span>=<span style="color: #000000"><span style="color: #000000">drawcolor; </span></span><span style="color: #0000ff"><span style="color: #0000ff">int</span></span>X1 =<span style="color: #800080"><span style="color: #800080"></span> +</span>, y1 =<span style="color: #800080"><span style="color: #800080"></span> -</span>, dy =<span style="color: #800080"><span style="color: #800080"></span> the</span><span style="color: #000000"><span style="color: #000000">; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000"><span style="color: #800000">draw circles and lines:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); Canvas. Drawcircle (x1</span></span>+<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>,<span style="color: #800080"><span style="color: #800080"></span> -</span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Small Circle</span></span>Canvas. Drawcircle (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>,<span style="color: #800080"><span style="color: #800080"></span> +</span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">great <span style="color: #008000">Circle</span></span>Canvas. DrawLine (<span style="color: #800080"><span style="color: #800080">0</span></span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>,<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Draw Line</span></span><span style="color: #000000"><span style="color: #000000">Y1</span></span>+=<span style="color: #000000"><span style="color: #000000">dy; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000">to <span style="color: #800000">Draw an arc:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); P.setstyle (Paint.Style.Stroke);</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Draw outlines only</span></span>RECTF Oval1 =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (x1 +<span style="color: #800080"><span style="color: #800080"></span> max</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); Canvas. DrawArc (oval1,</span></span><span style="color: #800080"><span style="color: #800080"></span> the</span>,<span style="color: #800080"><span style="color: #800080"></span> the</span>,<span style="color: #0000ff"><span style="color: #0000ff">false</span></span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Small Arc</span></span>oval1. Set (x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); Canvas. DrawArc (oval1,</span></span><span style="color: #800080"><span style="color: #800080"></span> the</span>,<span style="color: #800080"><span style="color: #800080"></span> the</span>,<span style="color: #0000ff"><span style="color: #0000ff">false</span></span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Small Arc</span></span>oval1. Set (x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> $</span>, X1 +<span style="color: #800080"><span style="color: #800080"></span> about</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); Canvas. DrawArc (oval1,</span></span><span style="color: #800080"><span style="color: #800080">0</span></span>,<span style="color: #800080"><span style="color: #800080"></span> the</span>,<span style="color: #0000ff"><span style="color: #0000ff">false</span></span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Small Arc</span></span><span style="color: #000000"><span style="color: #000000">Y1</span></span>+=<span style="color: #000000"><span style="color: #000000">dy; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000"><span style="color: #800000">Draw a rectangle:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); P.setstyle (Paint.Style.Fill);</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Fill Only</span></span>Canvas. DrawRect (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Square</span></span>Canvas. DrawRect (x1 +<span style="color: #800080"><span style="color: #800080"></span> $</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, p);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Rectangular</span></span><span style="color: #000000"><span style="color: #000000">Y1</span></span>+=<span style="color: #000000"><span style="color: #000000">dy; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000">to <span style="color: #800000">draw a fan and ellipse:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); Shader Mshader</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>LinearGradient (<span style="color: #800080"><span style="color: #800080">0</span></span>,<span style="color: #800080"><span style="color: #800080">0</span></span>,<span style="color: #800080"><span style="color: #800080"></span> -</span>,<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">, </span></span><span style="color: #0000ff"><span style="color: #0000ff">New</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span><span style="color: #000000"><span style="color: #000000">[] {color.red, color.green, color.black, color.yellow, color.lightgray},</span></span><span style="color: #0000ff"><span style="color: #0000ff">NULL</span></span><span style="color: #000000"><span style="color: #000000">, Shader.TileMode.Repeat); P.setshader (mshader); RECTF Oval2</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080"></span> $</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">set a new rectangle, scan the measurement</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">true: Draw a fan, false: draw an arc</span></span>Canvas. DrawArc (oval2, x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>,<span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">, p); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Draw an ellipse</span></span>oval2. Set (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080">380</span></span>, y1 +<span style="color: #000000"><span style="color: #000000">dy); Canvas. DrawOval (oval2, p); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">true: Draw a fan, false: draw an arc</span></span>RECTF Oval3 =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); Canvas. DrawArc (oval3, X1</span></span>+<span style="color: #800080"><span style="color: #800080">480</span></span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>,<span style="color: #0000ff"><span style="color: #0000ff">true</span></span><span style="color: #000000"><span style="color: #000000">, p); Y1</span></span>+=<span style="color: #000000"><span style="color: #000000">dy; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000"><span style="color: #800000">Draw a triangle:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); Path Path</span></span>=<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Path (); Path. MoveTo (x1</span></span>+<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">starting point (the point where the top corner is Located)</span></span>Path. LineTo (x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); Path. LineTo (x1</span></span>+<span style="color: #800080"><span style="color: #800080">260</span></span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">); Path. Close (); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">make these points form a closed polygon</span></span><span style="color: #000000"><span style="color: #000000">Canvas. DrawPath (path, p); Y1</span></span>+=<span style="color: #000000"><span style="color: #000000">dy; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000"><span style="color: #800000">Draw a polygon:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); </span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">draw six shapes (can draw Freeform)</span></span>P.setstyle (Paint.Style.Stroke);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Draw outlines only</span></span>Path path1 =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span><span style="color: #000000"><span style="color: #000000">Path (); path1. MoveTo (x1</span></span>+<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">upper <span style="color: #008000">left corner</span></span>path1. LineTo (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Top Horizontal</span> line</span>path1. LineTo (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> +</span>);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">top Right Slash</span></span>path1. LineTo (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">right <span style="color: #008000">Vertical</span> line</span>path1. LineTo (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">lower <span style="color: #008000">right Slash</span></span>path1. LineTo (x1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span>);<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Lower Horizontal</span> line</span>path1. Close ();<span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">closed</span></span><span style="color: #000000"><span style="color: #000000">Canvas. DrawPath (path1, p); Y1</span></span>+ = dy +<span style="color: #800080"><span style="color: #800080"></span> -</span><span style="color: #000000"><span style="color: #000000">; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000">to <span style="color: #800000">draw a rectangle with rounded corners:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); P.setstyle (Paint.Style.Fill);</span></span><span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000"><span style="color: #008000">Fill</span></span>RECTF Oval4 =<span style="color: #0000ff"><span style="color: #0000ff">New</span></span>RECTF (x1 +<span style="color: #800080"><span style="color: #800080"></span> the</span>, y1, x1 +<span style="color: #800080"><span style="color: #800080">280</span></span>, y1 +<span style="color: #800080"><span style="color: #800080"></span> -</span><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">20: angle of the transverse fillet, 15: angle of the longitudinal fillet</span></span>Canvas. Drawroundrect (oval4,<span style="color: #800080"><span style="color: #800080"></span> -</span>,<span style="color: #800080"><span style="color: #800080"></span> the</span><span style="color: #000000"><span style="color: #000000">, p); Y1</span></span>+=<span style="color: #000000"><span style="color: #000000">dy; DrawText (canvas,</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #800000"><span style="color: #800000">stickers:</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">, x1, y1); Bitmap Bitmap</span></span>=<span style="color: #000000"><span style="color: #000000">Bitmapfactory.decoderesource (Resources, Resource.Drawable.ch03ic_launcher); Canvas. Drawbitmap (bitmap, X1</span></span>+<span style="color: #800080"><span style="color: #800080"></span> $</span><span style="color: #000000"><span style="color: #000000">, y1, p); } }}</span></span></pre><p><p>"Android" 21.2 Canvas and paint</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.