My first reaction is that if you really want render speed then you need to be leveraging the GPU which is going to be most reliable with OpenGL (as I understanding it more recent versions of Android will actually hardware accelerate for you, but there are many variables that affect whether this works, not least of which is the Android version running on the user's device).
However, the requirement for "fast rendering" may be misleading. Render speeds will vary wildly from device to device regardless of what mechanism you use, and you don't have any control over this. Game development faces this issue perhaps more than most but the key thing is to effectively "synchronize and interpolate". This means two things: 1. Changes in pixel color on screen (any change in the screen image is effectively a pixel color change) need to be synchronized with changes in the objects they represent. That is, if there are several objects in the scene that are changing position it is important that all the changes for a single frame are done without it affecting what's rendered to screen until ALL changes are done. Failure to do this will often result in "tearing" of visuals or jittery movement. 2. If there is a separation between changes in "world coordinate" objects and "screen coordinate" objects (i.e. the actual objects and their on-screen representations) there can sometimes be a case where changes in world coordinates are out of sync with screen refreshes. This is common in games where the "game thread" is using a fixed time step to calculate changes in world coordinates but the screen refresh rate is variable. In these cases it's important to keep both coordinate spaces in sync and one way to do this is to interpolate the world coordinates where there is an uneven number of "steps" required to synchronize the amount of time that has passed between screen render operations. For example if the fixed time step is 16ms, but the last render took 24ms you need 1.5 steps to accomodate this. In a fixed time step environment there is no such thing as a "half a step" so you need to perform 2 full steps then "estimate" the position at 1.5 steps by interpolating back from 2 to 1.5. Wow.. that was probably way more complicated than it needed to be :/ On Sunday, March 31, 2013 6:59:44 AM UTC-7, Simon Giddings wrote: > > I am writing a music notation app for android tablets. > As I draw everything (ie. this is not a "simple" image (jpg, pdf, etc) > which needs displaying), I need to ensure that the choice of drawing method > is the fastest possible. > > My options, as I see them at present, are > > 1. Classic on-screen drawing. > 2. Draw on a memory based canvas and bitblt the resulting bitmap onto > the screen > > Will either option give better rendering time results ? > > I have chosen to use classic drawing methods, rather than an OpenGL type > surface. > Is this a mistake ? > > Any help will be appreciated. > Thank you > -- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.