Hi Romain,

Thanks for your response.

I was experiencing a very interesting behavior. I started using a custom 
view inside a framelayout, and performed all the primitive operations and 
called invalidate() to let the system call onDraw. It was choking. I even 
tried to invalidate a rect, but it was just not fast enough - the 2nd view 
that was requesting the underlying view to redraw certain primitives based 
on the actions on the 2nd view was not responsive. I then started using the 
SurfaceView to see if there is any benefit for the same operation - and 
voila - it worked like a charm. This is why is used SurfaceView as a 
substitute - there was an apparent performance benefit. 

 That said, I'm going to take another look at my hierarchy, and all the 
custom views (there are quite a few), to make sure there are no other 
leaks. Like you said, I would rather use a View instead of SurfaceView.  
Thanks for your input though - it does answer the question that I can use a 
canvas with TextureView if i follow the intended mode of use.

-Ajit

On Saturday, September 29, 2012 2:47:45 PM UTC-7, Romain Guy (Google) wrote:
>
> Hi, 
>
> If you were using SurfaceView's onDraw() method then you were not 
> getting any benefit. You have to use 
> lockCanvas()/unlockCanvasAndPost() and post on the underlying Surface. 
> TextureView works in a similar way: you can call 
> lockCanvas()/unlockCanvasAndPost(). 
>
> However, it seems all you need is a View. It's easier to use and since 
> you are not using SurfaceView properly anyway it will do the same 
> thing. 
>
> On Thu, Sep 27, 2012 at 2:19 PM, Ajit Vasudevan 
> <vasu...@gmail.com<javascript:>> 
> wrote: 
> > Hello, 
> > 
> > I am currently working on an app that requires computations/rendering 
> based 
> > on a variety of user inputs. I have implemented the SurfaceView and 
> things 
> > work as expected. 
> > But I started facing performance issues when I tried to put this inside 
> a 
> > horizontal scroll view. Obviously it is not intended to work this way - 
> but 
> > I tried anyway :) 
> > Based on what I have read - it appears like I have to move to 
> TextureView. 
> > But i am unable to override the onDraw, and therefore cannot perform the 
> > necessary drawing using the Canvas. This might be a trivial question - 
> but I 
> > wanted to know if we can use TextureView to draw primitives on the 
> screen 
> > using a Canvas? The only examples I have seen thus far show the use of 
> > video/camera/openGL rendering on the TextureView. 
> > 
> > Any help on this would be great. 
> > 
> > Thanks much 
> > -Ajit 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "Android Developers" group. 
> > To post to this group, send email to 
> > android-d...@googlegroups.com<javascript:> 
> > To unsubscribe from this group, send email to 
> > android-developers+unsubscr...@googlegroups.com <javascript:> 
> > For more options, visit this group at 
> > http://groups.google.com/group/android-developers?hl=en 
>
>
>
> -- 
> Romain Guy 
> Android framework engineer 
> roma...@android.com <javascript:> 
>

-- 
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

Reply via email to