I very strongly recommend that you don't use multiple surface views.  A
surface view is a very heavy-weight object, and intended for the primary
area of the window -- for example, the video part of a video player, the
playfield of a game, etc.  It is basically an overlay, and actually its own
separate full window that is simply being Z-ordered with your main window to
make it look like they are related.

I don't know what your "complicated" animation sequence is, but just having
some animation is not enough reason to use a surface view.  Worst case, you
can just create an off-screen bitmap that you draw the animation in and
update the screen by drawing that bitmap to the screen with the normal
invalidate() mechanism.  If you need the performance of a surface view, then
you should design your game so that your entire playfield is on surface
view, and you take care of drawing each of your boxes inside of that and
manage them however you want (not as their own views).

On Tue, Jul 14, 2009 at 4:27 AM, ayanir <[email protected]> wrote:

>
> Hello,
>
> I'm a new Android developer.
> I would like to make a simple game using the SurfaceView (Canvas
> drawing).
>
> the game has a a custom Object name Box. Box can draw itself and need
> to get an event when it is clicked. when it does, there is an
> animation sequence coming out of the box like a "jumping clown".
> I have several Boxes on the screen when each of them can be activated.
> Several Boxes animation can also be presented simultaneously.
>
> Here it gets tricky:
> Since I have a "complicated" animation sequence, each Box extends
> SurfaceView.
> The problem is I haven't figured it out how can I handle several
> SurfaceView's drawing using only one Thread (in order to present an
> animation I need to use one) and also how can I get the onClick/
> onThouch event from my Activity to each of my Boxes.
>
> The LunarLanding example in the SDK uses only one Thread but also uses
> only one SurfaceView which manage the animation of the game components
> (there are no several game components SurfaceViews). Also, there is no
> need to get onTouch event, so this example doesn't match to my case.
>
> I have several questions about what is the right approach do code
> this:
> 1. Should I use Box extends SurfaceView?
> 2. Can SurfaceView gets user events like onTouch/onClick?
> 3. Is there a way to add to the "main" SurfaceView another SurfaceView
> (Box)?
> 4. If none of the above questions is positive, should I use one
> SurfaceView (and one Thread) and try to map the other Boxes on the
> screen for user event handling. I mean Box only paints itself but the
> user event is being handled by me (not by the OS).
> 5. Should each Box (SurfaceView) should handle it's own Thread in case
> of animation (it is not good design but it is also an option)?
> 6. do you have any other proposal?
>
> I know that these are a lot of questions but I'll appreciate if you
> can answer some of them.
>
> Thanks in advance,
> ayanir
>
>
>
> >
>


-- 
Dianne Hackborn
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to