Android official original text address: http://developer.android.com/guide/topics/graphics/2d-graphics.html
------The following translation incorporates my own thinking, To facilitate understanding, the translation in many places is not very appropriate, so the original English text
Canvas and Drawables drawing board and drawings (the drawings are stretchable drawings)
IN THIS DOCUMENT
Draw with a Canvas
On a View
On a SurfaceView
Drawables
Creating from resource
images
Creating from resource
XML
Shape Drawable
Nine-patch
SEE ALSO
OpenGL with the Framework APIs
RenderScript
The Android framework APIs provides a set of 2D-drawing APIs that allow you to render your own custom graphics onto a canvas or to modify existing Views to customize their look and feel. When drawing 2D graphics,
you'll typically do so in one of two ways :
Android framework APIs provide a series of 2D drawing APIs. These APIs allow you to render your own custom graphics (Graphics) to the artboard (Canvas), or modify existing views (Views) to customize them. Effect and experience. When drawing 2D graphics, there are generally two ways:
Draw your graphics or animations into a View object from your layout. In this manner, the drawing of your graphics is handled by the system's normal View hierarchy drawing process — you simply define the graphics to go inside
the View.
Draw your graphics (Graphics) or animation into a View (View) object, through the layout file (layout). This way, the drawing of your graphics will be handled by the system's regular view-level drawing process -- you simply define the graphics into your view. This method probably refers to the background image defined in xml or the src attribute in ImageView.
Draw your graphics directly to a Canvas. This way, you personally call the appropriate class's
onDraw()
method
(passing it your Canvas), or one of the Canvas
draw...()
).In doing so, you are also in control of any animation.
Draw your graphics (Graphics) directly to a drawing board (Canvas). In this method, you have to personally call the onDraw() method of the appropriate class (pass into your Canvas), or one of the Canvas draw...() methods (such as drawPicture()). By doing this, you can also control any animation.
Option "a," drawing to a View, is your best choice when you want to draw simple graphics that do not need to change dynamically and are not part of a performance-intensive game. For example, you should draw your
graphics into a View when you want to display a static graphic or predefined animation, within an otherwise static application. Read Drawables for
more information.
Option a, when you want to draw a simple graphic (Graphics), this graphics does not need to change dynamically or is not part of the performance-enhanced game. At this time, drawing the graphics into a view (View) is your best choice. For example: when you want to display a static graphic or a predefined animation, you should draw your graphic into a View.
Option "b," drawing to a Canvas, is better when your application needs to regularly re-draw itself. Applications such as video games should be drawing to the Canvas on its own. However, there's more than one way
to do this:
Option b, when your application needs to redraw itself on time, drawing into a canvas is a better choice. For example a video game application should be drawn to the artboard. Anyway, there are many ways to do it.
In the same thread as your UI Activity, wherein you create a custom View component in your layout, call
invalidate()
and
then handle the
onDraw()
callback.
In the same thread as your UI Activity, create a custom view component (View component) with your layout, call the invalidate() method, and then handle the onDraw() callback.
Or, in a separate thread, wherein you manage a
SurfaceView
and
perform draws to the Canvas as fast as your thread is capable (you do not need to request
invalidate()
). Or, in a separate thread, where you manage a SurfaceView and draw graphics to the Canvas as quickly as possible (you don't need to request Invalidate()
).
The above is the content of the first episode of Canvas and Drawables translation. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!